[Bloat] SO_SNDBUF and SO_RCVBUF
Rick Jones
rick.jones2 at hp.com
Wed Apr 22 15:26:48 EDT 2015
> So it looks like the number you feed it turns into the window size.
>
> A few quick tests with netperf confirm that it is doing something close to
> what I expect but I haven't fired up tcpdump to verify that the window size
> is what I asked for. netperf does print out values that are 2x what I asked
> for.
It will do that until you start asking for (2x?) more than
net.core.[rw]mem_max. At that point they will be clipped.
> Yuck. (That's Yuck at Linux, not netperf.)
No worries :)
That bit of behaviour frustrated me and my BSD-stack upbringing for
years, along with the auto-tuning. Finally I ended-up adding support
for reporting three different socket buffer values via the "omni" output
selectors:
1) the size requested by the user via the command line
2) the size initially after the data socket was created (and any
setsockopts triggered by the command line)
3) the size at the end of the test
The classic netperf tests have always reported 2. If you use the omni
tests directly (-t omni) they will report 3. You can always use the
test-specific -o, -O or -k option to emit each specifically. For both
SO_[SND|RCV]BUF locally and remote:
raj at tardy:~/netperf2_trunk$ netperf -- -O \? | grep SIZE
LSS_SIZE_REQ
LSS_SIZE
LSS_SIZE_END
LSR_SIZE_REQ
LSR_SIZE
LSR_SIZE_END
RSS_SIZE_REQ
RSS_SIZE
RSS_SIZE_END
RSR_SIZE_REQ
RSR_SIZE
RSR_SIZE_END
...
happy benchmarking,
rick jones
More information about the Bloat
mailing list