[netperf-talk] cpu utilization on solaris
Rick Jones
rick.jones2 at hp.com
Mon Aug 3 13:56:33 PDT 2009
While looking at the src/nettest_omni.c code in preparation for migrating some
of the "classic" netperf tests to use the "two routines to measure it all" code
in nettest_omni.c I am reminded that the UDP_RR test is controlled by time and
the timer on the remote runs for an extra PAD_TIME seconds. That is to make
certain the netserver doesn't end the test before netperf does. The CPU
utilization code knows about this and in keeping with the ass-u-me-ption that
there is only really one netperf/netserver running will adjust the CPU
utilization accordingly. It is possible that, in conjunction with running
multiple, concurrent UDP_RR tests is affecting the "accuracy" :) of the CPU
utilization calculation.
If that is indeed the case, I would expect that longer run times would result in
remote CPU utilizations getting closer to 100% as PAD_TIME (4 seconds, IIRC)
becomes a smaller and smaller fraction of the run time.
The TCP_RR test, since it has the "positive indication of test end on the data
connection" (ie the read return of zero) does not have the PAD_TIME issue.
In the omni tests I go back to something I rejected "way back when" but is used
in other benchmarks - to let the UDP test(s) exit at the far end without waiting
for the timer+PAD_TIME to pass, the netperf omni test will send three
zero-length UDP datagrams on the data connection. The idea is that at least one
of those will get through and cause a "read return of zero" to get the netserver
side out of its loop. The timer is still there on the remote "just in case" so
there could still be that issue if the three zero-length datagrams were all dropped.
So, it might be interesting to try aggregate "omni" tests set for UDP_RR
behaviour in addtion to trying the longer run times with the "classic" tests.
happy benchmarking,
rick jones
More information about the netperf-talk
mailing list