[netperf-talk] FreeBSD sysctl cpu utilization diffs

Andrew Gallatin gallatin at cs.duke.edu
Fri Apr 14 16:46:48 PDT 2006


Rick Jones writes:

 > Well, the appearance of 32 CPUs.  How one handles "CPU utilization" in 
 > the context of HW threading is a very "interesting" topic - one I'm 
 > running into for AIX with netperf4.

Even what "CPU utilization" means on a hyperthreaded P4 on Linux is
confusing...  If vmstat says "50%", that doesn't really mean 
you could really get twice as much work out of the box.
I also imagine the looper would greatly impact performance on a
hyperthreaded system.

 > > Looper does not seem to compile in 2.4.1, so it is hard to say. :(
 > 
 > I think that is resolved in the SVN top of trunk:

Excellent.  I'll try the SVN version soonish.

 > 
 > http://www.netperf.org/svn/netperf2/trunk/

 > I'll go ahead and apply your patch to the TOT, based on your assertion 
 > of the pickiness of the FreeBSD timekeepers :)  Working calibration-free 
 > mechanisms in netperf2 is a good thing - makes it easier to do the same 
 > in netperf4.

Great.  Thank you!

 > > BTW, I *love* the CPU binding for linux in 2.4!
 > 
 > I finally bit the bullet and agreed to accept CPU binding for non-looper 
 > processes - it should be there for most platforms now.  It is also in 
 > the netperf4 glib_migration branch.  A bit more sophisiticated now - we 
 > launch test threads from the same CPU to which they are to be bound 
 > (allow stack allocation to be based on the CPU to which the test thread 
 > will be bound)

It makes for really interesting performance data.  Receiving a
TCP_SENDFILE via 10GbE on a 2.0GHz Athlon64x2 running RHEL4 shows
8.4Gb/s at 50% CPU when netserver and the interrupt are both bound the
the same core.  If I move the netserver to the other core, bandwidth
shoots up to 9.4Gb/s at ~60% CPU.  Left to its own devices, linux will
schedule the netserver on the same core as the interrupt handler ran
on, so I was used to seeing the lower number.  Solaris uses one core
for the interrupt handler, and the other for the netserver and manages
9.8Gb/s at a claimed 48%CPU.  It will be fun to try 2.4.1 on Solaris
and see what happens when I bind netserver to the same core as the
ithread.

Sorry for rambling.  All these new features make me feel like a kid
on his birthday ;)

BTW, I had to beat on the CPU binding code to get it to choose 
the correct version on RHEL4.  I'll see if its still broken in
SVN and submit a patch if it is.

Thanks for such a wonderful tool!

Drew



More information about the netperf-talk mailing list