[netperf-talk] Some question about TCP_RR test
Rick Jones
rick.jones2 at hp.com
Thu Jul 21 10:48:14 PDT 2011
On 07/21/2011 03:20 AM, Hangbin Liu wrote:
> Hi all,
>
> I got a network traffic flood in our lab yesterday when I use TCP_RR.
> Could you help me answer the questions and find the flood reason?
Traffic flood? With netperf TCP_RR? FWIW, nothing that follows in the
email suggests (at least on the surface) a netperf-induced traffic flood
on your network.
> The cmd is:
> "netperf -6 -l 20 -H 2620:52:0:102f:207:43ff:fe10:760 -t TCP_RR -i 10,3
> -I 99,5 -r {1,16,32...},1 -s 0 -S 0".
> We test the TCP_RR option and set request package from 1 to 4381. And we
> often got a warning like:
> !!! WARNING
> !!! Desired confidence was not achieved within the specified iterations.
> !!! This implies that there was variability in the test environment that
> !!! must be investigated before going further.
> !!! Confidence intervals: Throughput : 25.119%
> !!! Local CPU util : 0.000%
> !!! Remote CPU util : 0.000%
>
> Local /Remote
> Socket Size Request Resp. Elapsed Trans.
> Send Recv Size Size Time Rate
> bytes Bytes bytes bytes secs. per sec
>
> 2048 256 1 1 20.00 6014.78
> 2048 256
>
> +++++++++++++++++++++++++++++++ Questions +++++++++++++++++++++++++++++++++
>
> 1. What's this warning means, does that have any influence for our test output?
The -I 99,5 was requesting that netperf attempt to be 99%
certain/confident that the average it was going to report was within
+/- 2.5% of the "real" average for, in this case, transactions per
second. The -i 10,3 said that netperf should run at least three
iterations of the test, and no more than 10, when attempting to acheive
that level of confidence.
http://www.netperf.org/svn/netperf2/trunk/doc/netperf.html#index-g_t_002dI_002c-Global-27
> 2. And what the throughput means? I can't find it from man page and sometimes I
> even got a :
> Confidence intervals: Throughput : 654.493%
>
> why it can exceed 100%, is that have any problems for our lab?
Throughput is a generic term in that output - the same code is used to
emit the warning for all tests. In the case of the TCP_RR test the
"throughput" is usually reported in transactions per second.
http://www.netperf.org/svn/netperf2/trunk/doc/netperf.html#Using-Netperf-to-Measure-Request_002fResponse
I slept too often in my Probability and Statistics class in college, but
it can exceed 100% if the results are particularly variable. The width
of the confidence interval is expressed as a percentage of the average
(the mean). Now, this shows that my simple "divide the width by two and
say +/-" is simplistic for it would be quite difficult indeed to have
something that was -377ish percent of the average but still... :)
> 3. What's Trans Rate per sec number means? bits/s, Bits/s, Kb, Mb ???
A transaction here is the exchange of one request and one response. So,
it is just what it says - transactions per second.
> 4. How client performance affect throughput
How long is a piece of string?
There are a plethora of things happening in/with the client that can
affect the performance of the netperf TCP_RR test. They include, but
are not limited to, and in no particular order:
*) the path length of the TCP/IP/driver stack
*) the DMA latency of the system
*) the performance of the processor
*) the width of the I/O bus to which the NIC is connected
*) the underlying HW/FW performance of the NIC
*) the presence or lack of offload features in the NIC
*) etc etc etc
> ++++++++++++++++++++++++++++++++++++++ Problem +++++++++++++++++++++++++++++++++
>
> Normally we get the warning from package sizes 256, but this time we got the
> warning from 1. Can you help me find the reason? Thanks!
>
> *Normal test:
>
> Socket Size Request Resp. Elapsed Trans.
> Send Recv Size Size Time Rate
> bytes Bytes bytes bytes secs. per sec
>
> 2048 256 1 1 20.00 8518.70
> 2048 256
> 2048 256 16 1 20.00 8269.85
> 2048 256
> 2048 256 32 1 20.00 8141.42
> 2048 256
> 2048 256 64 1 20.00 7905.91
> 2048 256
> !!! WARNING
> !!! Desired confidence was not achieved within the specified iterations.
> !!! This implies that there was variability in the test environment that
> !!! must be investigated before going further.
> !!! Confidence intervals: Throughput : 10.275%
> !!! Local CPU util : 0.000%
> !!! Remote CPU util : 0.000%
>
> 2048 256 128 1 20.00 6650.96
>
> *Test last night:
>
> !!! WARNING
> !!! Desired confidence was not achieved within the specified iterations.
> !!! This implies that there was variability in the test environment that
> !!! must be investigated before going further.
> !!! Confidence intervals: Throughput : 25.119%
> !!! Local CPU util : 0.000%
> !!! Remote CPU util : 0.000%
>
> Local /Remote
> Socket Size Request Resp. Elapsed Trans.
> Send Recv Size Size Time Rate
> bytes Bytes bytes bytes secs. per sec
>
> 2048 256 1 1 20.00 6014.78
> 2048 256
> !!! WARNING
> !!! Desired confidence was not achieved within the specified iterations.
> !!! This implies that there was variability in the test environment that
> !!! must be investigated before going further.
> !!! Confidence intervals: Throughput : 12.254%
> !!! Local CPU util : 0.000%
> !!! Remote CPU util : 0.000%
>
> 2048 256 16 1 20.00 6126.77
> 2048 256
It simply means that netperf, given the conditions of the test and the
constraints of the command line, was unable to be "confident" that the
actual average transaction rate - what one would see if one ran an
infinite number of iterations was within the desired distance of what
netperf actually measured.
It means there was more variability in the result (transaction rate)
than the command line told netperf you wanted. So, it issues the warning.
You can try increasing the number of iterations - the maximum is 30 (-i
30,3). You can try increasing the length of each iteration (-l 60).
You might even try both.
There may also be some interesting interactions with the rather small
socket buffer sizes the netperf command line is requesting - 2048 and
256 are (IIRC) linux minimums, stemming from the "-s 0 and -S 0"
test-specific options. If the intent is to get the system default, then
those options should be omitted, or given a value of -1. Under Windows
a value of "0" means "try to use copy avoidance" so many years ago that
change was introduced into netperf.
More information about the netperf-talk
mailing list