[netperf-talk] Re: Difficultly in understanding the CPU utilization
results for UDP stream test
Rick Jones
rick.jones2 at hp.com
Mon Jul 2 17:33:44 PDT 2007
Brijraj Vaghani wrote:
> Hi,
>
> I am trying to measure the CPU consumption of the IP/UDP stack of my
> linux machine. I read up the manual of Netperf and thought it can be
> useful to me. I installed netperf on my machine, ran netserver
> explicitly and ran the basic sanity test. All seemed to be working
> fine till this point. Then I tried measuring the CPU utilization of
> the IP/UDP stack using the following command line
> netperf -t UDP_STREAM -c
> which generated the following result
> Socket Message Elapsed Messages CPU
> Service
> Size Size Time Okay Errors Throughput Util
> Demand
> bytes bytes secs # # 10^6bits/sec %
> SU us/KB
>
> 110592 65507 10.00 235223 0 12325.4 99.90 inf
> 110592 10.00 0 0.0 -1.00
> -1.000
I'm guessing you trimmed a bit of the beginning of the output - not a
big deal, just checking.
Anyway, the above suggests that the sending side completely overran the
receiver, or that the message size was too large - which is more likely
because normally at least _one_ message would make it. It also suggests
the test consumed all the available CPU on the sending system.
> After going through the mailing list archives, I figures that this
> might be a problem with flow control. So I reconfigured netperf and
> made a clean build.
> Then I carried out the same test using the following command line argument
> netperf -t UDP_STREAM -c, which generated the following result
> Socket Message Elapsed Messages CPU
> Service
> Size Size Time Okay Errors Throughput Util
> Demand
> bytes bytes secs # # 10^6bits/sec %
> SU us/KB
> 110592 65507 10.00 1 0 0.1
> 42.40 inf
> 110592 10.00 0 0.0
> -1.00 -1.000
Re configured netperf how exactly - with --enable-intervals, or
something else?
> and since I am more interested in finding the performance of the
> IP/UDP stack on the receiver side, I ran the following script as well
> netperf -b 1 -w 10000 -t UDP_STREAM -C, which generated the following
> result
>
> Socket Message Elapsed Messages CPU
> Service
> Size Size Time Okay Errors Throughput Util
> Demand
> bytes bytes secs # # 10^6bits/sec
> % SU us/KB
> 110592 65507 10.01 1 0 0.1
> -1.00 -1.000
> 110592 10.01 0 0.0
> 53.51 inf
-b 1 means there should be one send call in each burst, and that bursts
should happen once every 10000 milliseconds, so yes, that first part of
it looks correct. (well, without going too deep into the math)
> Do these numbers look right. I looked at the example results in the
> manual and their format seems to be different than that of what I got.
> For instance without using the throughput numbers show up in both the
> client and server in the examples where I get them only for the
> client.
> Also in the last set of results, is the following interpretation of
> the results correct " The IP/UDP stack takes up 53.51% of the CPU to
> receive UDP data at 0.1Mbps ?
I'd double check that with top. It does look rather off. Which
rev/distro of Linux is this?
As for why there are still no messages recorded as being received, I
would guess that 65507 was still just a little too large for the receive
side. You could try a test-specific -m option to use a different size.
happy benchmarking,
rick jones
> Thanks in advance for your help.
>
> Brijraj
More information about the netperf-talk
mailing list