-
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
bytes/blockcount with reverse mode #596
Comments
The problem with this is similar to #594, where the server knows when the test is done but doesn't have an easy way to tell the client that (and the client is the side that controls stopping the test...this is regardless of whether |
Thanks for the clarifications |
Any news on this issue? Because I have the exact same problem with -n (set number bytes) and -R (reverse mode). In fact I setup an script to count the number of bytes from iperf output and continuous test until the limit is reached, but this is not a good solution :( |
Hi,
After this, no matter whether I use -k or -n, the test never ends. (Well I don't want to say never but it ran for an hour so I killed it). Any idea why this happens? Is this issue related to the issue here? Thanks for any input on this. |
In my local computer I see the same problem using iperf3 version 3.7, but it doesn't exist when I am using 3.10. |
I can confirm that I'm also seeing this issue fixed with the latest on main (post release 3.17.1) , specifically, both -k and -n with -R do stop as expected when performing a UDP test. It's the client version that matters (upgrading the server end doesn't do it). I believe this issue can be closed. |
@tve, can you describe the test you did? I am asking since as far as I know this issue was not resoled, as it requires that the server will notify the client that the test ended (see this comment above). Actually, since version 3.16 (multi-thread) issue is worse, since even after all packages are sent/received, with or without |
Sure:
and on the server I see:
Server: iperf 3.17.1+ (cJSON 1.7.15) |
I am not sure that the test shows that the issue was fixed. If the issue was fixed then the server should have sent 3.03MB (3100KB), but it sent 9.15MB. Even the client does not stop the test after receiving 3.03MB (it received 4.54MB) because of the other issue I mentioned above - it ends the test only at the end of the 0.3 seconds interval (up to the end of the 0.2 seconds interval it received 2.95MB). |
Yes, you're right, calling it "fixed" is perhaps not right. For me the way it works, i.e., the receiver stops the transfer at the next interval after it gets the requested amount makes it totally usable. It gets into the "bug or feature" grey zone as opposed to previously being totally unusable (when it continued forever). |
OK, I understand. I submitted now PR #1800 that suggests to make the current behavior a feature of iperf3, buy documenting it in the help message. |
iperf 3.1.2
CentOS 6.4 x86_64
While testing with iperf3 blockcount (-k) option (similar behavior with bytes (-n) option), I see the following observations
Normal mode
Client: iperf3 -p 25000 -c <server_ip> -u -l 1370 -b 3m -k 2000
Server: iperf3 -p 25000 -s -i 1
Client sends ~2000 packets to the server irrespective of the packets lost in the network. Hence, even if server received only 1500 packets due to nw losses, the client stopped sending after transmitting 2000 packets.
Reverse mode
Client: iperf3 -p 25000 -c <server_ip> -u -l 1370 -b 3m -k 2000 -R
Server: iperf3 -p 25000 -s -i 1
Server sends packets till the client receives ~2000 packets. Hence, if this is a lossy nw such that 25% packets are lost in transmission, then server effectively sends 2500 packets and client receives 2000 packets and only then the test ends.
Please clarify if this is the intended implementation.
The text was updated successfully, but these errors were encountered: