[netperf-talk] Which is the best hardware configuration for Netperf-Server?
Andrew Gallatin
gallatin at cs.duke.edu
Tue Oct 27 05:39:14 PDT 2009
Frank Schuster wrote:
> Hello,
>
> after I get Netperf successful running on a test system I want to
install a large server with netserver (netperf 2.4.5) in my backbone.
>
> But my question is what is the best hardware configuration expect of
the network interface?
> The network interface can up to more than 10 gbps.
I'm sorry, I cannot really understand what you are asking. If you're
asking how to configure your NIC, usually the best answer is "don't
configure it at all". Are you asking what arguments to pass to netperf?
> Is netperf supporting multicore processors?
Netperf 2.x is single threaded. The netserver server forks a new
child for each connection. This means you can run multiple processes
easily. Note that netperf2 does not coordinate between multiple
processes, so you need to be careful not to rely on the numbers
produced by those multiple processes, as they may be inaccurate (say
process A starts 0.5 seconds before process B -- it will have the
network to itself for 0.5 seconds at the start, and B will have the
network to itself for 0.5 seconds at the end, and your test will
report overly optimistic bandwidth). Either use system tools
(netstat -i 1) to calculate b/w from multiple processes, or use a
different tool (netperf4, uperf, or iperf as a last resort) that was
intended for multiple threads.
I'll let Rick talk about netperf4. I'm too dumb to figure out how
to use it, so even though I'm a netperf2 "expert", I've never used
netperf4.
You can easily utilize more than one core by using netperf's CPU
binding options (-T$locCPUnum,$remoteCPUnum) and binding the
NIC's interrupt handler(s) to different cores than the
netperf/netserver processes. Or you can run multiple netperfs
and use the binding options to bind them to different cores.
> --> If yes, how can I configure netperf to use more than one processor?
> --> If yes or no, how many MHz should be each core have?
Endtation network performance as measured by netperf is not really
about "MHz". It is more about memory bandwidth and apparent MTU size.
Eg, I can easily saturate a 10GbE link with standard frames on a 2GHz
Nehalem Xeon using less than 1/2 of a CPU core when the OS and driver
support TSO and LRO. Under the same load, a 3GHz P4 would choke because
it doesn't have the memory bandwidth. Similarly, turn off TSO and
LRO on the Nehalem, and you might be able to saturate the link, but it
would take multiple parallel netperfs.
> How many RAM is prefered for long time running test and optionally
more than one thread (I think so up to 10 threads from one or more clients)?
Netperf itself uses almost no memory. There was a discussion earlier
on this list regarding how many buffers it uses. I've run
multiple copies of netperf on machines with as little as 128MB of RAM.
> I think the hard disk is not so interesting or I'm wrong? I think
netperf needs only space on the hard disk for swapping.
If you're using netperf -t TCP_SENDFILE and sending a file which is
not cached in the server's memory, then the disk speed will matter.
Otherwise, disk speed is largely irrelevant.
Best regards,
Drew
More information about the netperf-talk
mailing list