Skip to content
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

-w option doesn't work in server-mode #143

Closed
bmah888 opened this issue Feb 28, 2014 · 2 comments
Closed

-w option doesn't work in server-mode #143

bmah888 opened this issue Feb 28, 2014 · 2 comments

Comments

@bmah888
Copy link
Contributor

bmah888 commented Feb 28, 2014

From chris.welti on February 21, 2014 06:29:21

What steps will reproduce the problem? 1. iperf -s -w 1M 2. 3. What is the expected output? What do you see instead? TCP receive buffers should be able to be changed in server mode (-s -w).
Instead iperf reports this command is only supported in client mode:
iperf3: parameter error - some option you are trying to set is client only What version of the product are you using? On what operating system? welti@ezmp3:/iperf301/iperf-3.0.1/src$ ./iperf3 -v
iperf version 3.0.1 (10 January 2014)
Linux ezmp3 3.12-0.bpo.1-amd64 #1 SMP Debian 3.12.6-2
bpo70+1 (2014-01-07) x86_64 GNU/Linux Please provide any additional information below. It doesn't make sense that one can not set the TCP window in server mode (which is by default the receiving host). This makes debugging performance issues difficult.

Original issue: http://code.google.com/p/iperf/issues/detail?id=143

@bmah888
Copy link
Contributor Author

bmah888 commented Feb 28, 2014

From [email protected] on February 21, 2014 13:56:31

I don't think the -w option does what you think it does.

It's supposed to set the socket buffer size (which is also the maximum TCP window size) on the sender. Tuning this value can be important because it limits the amount of data that's in-flight (transmitted but not acknowledged by the receiver). On paths with large bandwidth-delay products, a value that's too small can result in throughput that's much smaller than the maximum achievable.

In iperf3, this value is specified per test, thus it is always specified on the client side. The client and server exchange parameters before the test starts, and whichever process is the one that's sending the data (by default this is the client, but will be the server if the --reverse option is given) configures itself accordingly before starting to send data.

This flag is working as designed, resolving as Invalid.

Status: Invalid

@bmah888 bmah888 closed this as completed Feb 28, 2014
@xamwm
Copy link

xamwm commented Jun 28, 2019

Could you please double-check that '-w' setting works correctly in '-R' mode (reverse)? I am specifying 5 MB tcp window, and it works as expected in "client sends to server" mode, I am seeing 434 Mbits/sec on 1 Gbit/sec pipe with 90 ms roundtrip (UK<->US). But if I use -R (reverse option, server sends to client), I am getting 23.1 Mbits/sec (i.e. as if deafult window size is used). Trading placing (switching where iperf client and iperf server are) result in same exact outcome, as if -R ignores -w. I.e. network is sure capable of 434 Mbits/sec both ways. I would expect same exact results with and without -R when -w is specified

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants