[netperf-talk] Re: CPU calibration
Brijraj Vaghani
brijrajv at gmail.com
Mon Jul 9 16:37:35 PDT 2007
Thanks for your response. Comments inline...
On 7/9/07, Rick Jones <rick.jones2 at hp.com> wrote:
> Brijraj Vaghani wrote:
> > Hi all,
> >
> > I am trying to measure the CPU utilization of the IP/UDP stack on an
> > embedded Linux environment. To measure the CPU utilization, I cross
> > compiled Netperf for this particulate Linux environment and then
> > executed it. The CPU utilization measurements returned U as Netperf
> > was not aware of the Number of processors and CPU rate on the
> > processor.
>
> Ostensibly, "linux is linux" (well... :) and the /proc/stat stuff should
> work. IIRC that would be --enable-cpuutil=procstat.
I ran the same tests after reconfiguring Netperf with the
--enable-cpuutil=procstat option.
>
> > Then as recommend in the manual ("some platforms have no particularly
> > good mechanisms. On those platforms, it is probably best to use the
> > "LOOPER" mechanism") I configured Netperf to use the LOOPER method to
> > determine CPU utilization and executed it.
> > The following is the result which I got for command line command
> > netperf -H 10.195.16.226 -t UDP_STREAM -w 100 -b 8 -C -- -m 256
>
> So, I see you then also did --enable-intervals right?
Yes, I configured Netperf with --enable-intervals as well.
>
> > Socket Message Elapsed Messages CPU
> > Service
> > Size Size Time Okay Errors Throughput Util
> > Demand
> > bytes bytes secs # # 10^6bits/sec %
> > UL us/KB
> >
> > 110592 256 30.63 4800 0 0.3 -1.00 -1.000
> > 104448 30.63 4189 0.3 3.30
> > 965.666
> >
> > The CPU utilization of 3.3% seems to be a little high of 0.3 Mbps of data.
> > The manual also mentions that CPU calibration is needed when the
> > LOOPER technique is used. As seen from my the command line, I did not
> > specify the CPU rate. The debug trace on the machine running Netserver
> > says "local maxrate = 316603 per sec". How do I validate this value of
> > 316603??.
>
> I suspect that while you asked for a 30 second run, the overall time was
> more like 70 seconds - that time was the netserver running the cpu util
> calibration code. Actually, for the looper stuff it may even be a bit
> longer since it waits a bit for the looper process(es) to settle-in.
>
> You could also run:
>
> netperf -H <remote> -t REM_CPU
>
> and it should give you its calibration value. For a looper test all
> that really is is how quickly the looper process sits and spins in its
> little loop. See src/netcpu_looper.c for details.
>
Yes, it was around 70 seconds. Approximately 40 seconds of which was
spend in calibration.
> > The Linux environment on which I am running Netserver has 1 processor
> > running at 624 MHz. Is there a way to calculate CPU rate of a
> > particular processor, if yes then how? Also any other ideas on why the
> > CPU utilization looks high?
>
> Well, you could run top or vmstat - without netperf measuring CPU since
> the looper will take the system CPU util to 100% - and compare with what
> netperf reports for CPU util.
I reconfigured Netperf with --enable-cpuutil=procstat and executed the
same test. The results look slightly different but still a little off.
To process 0.3 Mpbs of data it takes 2.9% CPU. The additional 0.4% in
case of LOOPER might be because of the artifacts. Using TOP I observed
the CPU utilization of the Netserver process. It oscillates between
0.1% to 0.3%. Any ideas as to why this discrepancy?
>
> The 3.3% CPU util for 0.3 megabits per second could indeed be an
> artifact of the looper - there will be additional process/process
> context switching with the looper CPU util method. Or it could just be
> high CPU utilization thanks to path length in the stack.
>
> happy benchmarking,
>
> rick jones
>
> >
> > Looking forward to your response.
> >
> > Thanks,
> > Brijraj
>
>
More information about the netperf-talk
mailing list