-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explain the output in the manual page. What is iperf3 _doing_, and what is it _saying_? #480
Comments
I agree with it all. |
anyone want to do a 1st draft of this for us? |
iperf 3.x - Understanding test results (Draft)Descriptioniperf tool can be used to measure network bandwidth capacity Run testsiperf 3.x can be used in two modes:
Usage:
Server mode, can be started using
or
I that mode iperf listening on the default port 5201 for connections. Custom port for listening can be specified using
After server is started we should use iperf in client mode, in order to connect to it and verify connection speed. Client mode can be started using
If iperf server is running on non-default port, we can specify it during startup, using
We should be aware that, when the client connect to the server it send the data and in such case, by default Upload speed is measured.
Interpreting the resultsResult we get should be interpreted based on the:
iperf client modeAs mentioned above, by default iperf in client mode sending the data to the server. In such case results we got during the test:
Should be interpreted from the following points: If you start iperf client in reverse mode, iperf server will send data and iperf client will receive. In such case results we got during the test:
Should be interpreted from the following points: results from the iperf client or server sideDefault mode test:
During this test iperf client was a sender and in the results we can see: Reverse mode test:
During this test iperf server was a sender and in the results we can see: Any comments, tips and notes are welcome. Thank you! |
Thanks @eriitguy ! I only skimmed this so far, need to make another pass through it. I also need to figure out where's the best place to put this information (e.g. |
@eriitguy: A belated thank-you. I edited your text and shortened it a bit to fit into the context of a manual page (which is really intended to be more of a quick-reference to a program). That's what I committed yestserday. Thanks again! |
@bmah888, thank you for possibility to contribute! |
From the client mode, the sender line I understand represents the "upload bandwidth". But the receiver line, if it means the "download bandwidth" from the server's perspective, then what would be causing them to have different values for bandwidth? |
As @eriitguy wrote:
I'm not sure if understand. How can the transfer/bandwidth be 0 if it is the upload speed of iperf client? |
why don't we add the ip address of the server and client in the corresponding output rows so it is clear who is sending and receiving.. |
and what is Retr? I can't seem to find what it means. |
Found an answer here: what "Retr" field mean, apparently retr stands for retrasmission, and the |
Why the value at server log and client log are different? Shouldn't they be equal? |
i have a same question. Why the senders's transfer is not equal receiver's transfer |
It seems like the UDP loss in packets could explain differences in sender/receiver numbers, but not if either the server's sender or receiver average values are 0. I've noticed the same behavior (in TCP as well), where the other three values (from the server receiver/sender and client receiver/sender) are all a substantial, if not equal number of Mbits/sec. This seems like a program default and I don't think it's been answered yet why. |
@ryanwwest, can you give an example of the scenario and data you are referring to? |
Hello Maybe I missed in the manual but my question is that if the result reflect the TCP / UDP payload throughput?
and when I limit the connection to 100 Mbps I get exactly 10 times less 94.1 Mbps
I tried to increase the window size and use multiple connections but they didn't change the result. Thank you! |
Hi @dharmatma, note that this is iperf3 issue and it seems that you are using iperf2 (although I am not sure there is a difference between the two tools regarding your question). Can you explain how did you limit limit the connection to 100 Mbps? I assume that somehow you limit the connection throughput, as you didn't use the iperf2 |
Hello I didn't say there is an issue. This is only a question: What does exacly the iperf/iperf3 througput represent?
The measurement can represent the troughput of different layers of the OSI ISO model, which I haven't find clearly described in the documentation on the official website. So the question is very simple: For the above described environment (1Gbps Ethernet with 1500 Bytes MTU, IPv4 and TCP) what is the theoretical maximum number iperf can report? Thank you! |
Hello, this is a good question .... Assuming that your numbers are correct (I didn't check), I am actually surprised that you got 941Mbps out of the calculated 949Mbps. What is missing in your calculation is the processing overhead. That includes the iperf overhead, TCP stack overhead, Network-card overhead, buffers, etc. Therefore, the maximum throughput depends on the environment where the test is running. There are some answers to this question on the internet, e.g. this and this. (Note that this discussion is in a closed issue, so probably it will not get much attention from others. If the discussions I refereed to are not enough, you may try re-send your question as a Discussion, or event send it to forums like Stack Overflow.) |
Not missing, but purposefully left out, becuase processing overheads, as you also say, are test environment related and my calculations represent the theoretical maximum achievable numbers, and I didn't diluted with test environment bottlenecks. Most of today's computers (even consumer grade ones) are easily capable to transmit on 1Gbps rate on Ethernet cards (not to speak about 100Mbps), and the test enviroment I am using belongs to this category, I validated it with two other (paid) measurement software and with these software I am getting the theoretical maximum numbers, provided before, on each layer. Howerver I really would like to exclude my or any test setup, the only reason I set it up to attempt to find answer for the title of this topic "What is iperf3 doing, and what is it saying?" beacuse I couldn't find the answer in the documentation. Thank you for bringing to my attention that this topic is closed, since I was able to reply I didn't pay attention to the status. It is a good suggetion to start a new topic and continue there. |
iperf3 3.1.3-1
Arch Linux
It would be really polite to actually describe the program output in the manual page. For instance:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 4.04 MBytes 3.39 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 2.28 MBytes 1.91 Mbits/sec receiver
"sender" and "receiver" - who do you suppose they are? Perhaps one is the client and the other is the server? But which is which? Or, do "sender" and "receiver" refer to "sending" and "receiving", which would have a different meaning entirely? But then still, from what point of view? ... It's just not that hard to say something like "server sending" and "server receiving", or "client sending" and "client receiving". Or, is the server sending at a different rate than the client can receive? Perhaps the client can send faster than the server can receive? Or does iperf3 keep track of that? Or were there MTU issues in the channel? Does iperf3 check for that before running the test?
BTW - "Mbits/sec" is not a "Bandwidth", but a "Channel Capacity" or "Communication Rate". The "Bandwidth" would refer to something like "20MHz" or "40MHz", which would be interesting to notice when measuring the Communication Rate of a WiFi network interface.
The text was updated successfully, but these errors were encountered: