Fw: [netperf-talk] TCP_MAERTS "len was -1" issue
Rick Jones
rick.jones2 at hp.com
Mon Dec 11 14:21:46 PST 2006
Eric Hultin wrote:
>
> This must have gotten lost in your upgrades over thanksgiving, is there
> any way you would be able to respond to the attached e-mail? Thank you
> for any info you can provide.
I suspect that theprolonged shutdown led to messages being dropped - if
not to others on netperf-talk, almost certainly to me... sigh.
> We have been running TCP_STREAM tests with no problems with the
> following command line on Linux:
>
> ../netperf -H 10.18.212.230 -l 5 -t TCP_STREAM -f k -- -s 64K -S 64K -m
> 64K -M 64K
>
> Normally, we telnet on to the two PCs and perform a simultaneous test by
> running netperf on both units simultaneously. Due to some issues in our
> lab we are starting to use the TCP_MAERTS test to gather performance
> numbers so that we can run both the upstream and downstream tests from a
> single computer. However we are noticing the following problem:
>
> ../netperf -H 10.18.212.230 -l 5 -t TCP_MAERTS -f k -- -s 64K -S 64K -m
> 64K -M 64K
> TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.18.212.230
> (10.18.212.230) port 0 AF_INET
> send_tcp_maerts: data recv error: Interrupted system call
> len was -1
>
> When we run without the buffer settings it seems to work OK:
>
> ../netperf -H 10.18.212.230 -l 5 -t TCP_MAERTS -f k --
> TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.18.212.230
> (10.18.212.230) port 0 AF_INET
> Recv Send Send
> Socket Socket Message Elapsed
> Size Size Size Time Throughput
> bytes bytes bytes secs. 10^3bits/sec
>
> 87380 16384 16384 7.70 119.11
>
> Also, the TCP_STREAM test seems to work correctly on the other machine
> when we try emulating what the TCP_MAERTS test should be doing. We are
> running this with a Cable Modem which is rate limited to 128K/64K DS/US.
> This behavior was seen on netperf 2.4.0, 2.4.2, and a copy built from
> the latest subversion repository. This is running on Fedora Core 2 with
> the 2.6.10 kernel. Thanks in advance for any advice you can provide.
Hmm, normally, (these days at least) I leave-off the -M option for both
TCP_STREAM and TCP_MAERTS on the ass-u-me-ption that the receiver will
take-in as much data as possible in one call. I wouldn't think that
would matter here though.
I think the next step is seeing just what signal netperf is taking and
when - so a verbose strace would be my next suggestion.
happy benchmarking,
rick jones
BTW, since you are measuring bidirectional, there is a second way to do
it which is "different" - if you ./configure --enable-burst you can use
the TCP_RR test and put multiple requests into the connection at one
time to keep the thing busy in both directions at once:
netperf -H <host> -t TCP_RR -- -s 256K -S 256K -r 32K -b 6
is one I use often - has has many as 7 requests outstanding on the
connection at one time, which often is enough to saturate things. The
only downside is having to convert the trans/s into mbit/s by hand :)
Differences from a pair of TCP_STREAMS or a TCP_STREAM and a TCP_MAERTS:
*) One connection rather than two means less opportunity for multiple
CPUs to take part
*) May not expose inequities in transmit vs receive processing by a
NIC/driver since the application is forcing equality on its own
*) Easier to run the one instance than two - fewer synchronization issues
More information about the netperf-talk
mailing list