Generate 10 Gbps traffic across nodes

yes, iperf is the right tool for this. Make sure you use a long interval to allow the traffic stream to grow to 10GbE speeds. You may have to modify TCP window sizes to reach full saturation, as well. Here are some sample command lines...

On the server side:

iperf -s

On the client side:

iperf -c server.ip.address -w64k -t60


Sure, by all means.

One thing to watch out for with iperf is that you can bottleneck at the CPU - by default, it uses random data to nullify the effect of any tricky compression or deduplication of data.

If you have enough nodes, then it should be no problem to just use the default; if you find that the CPU is pegging, then override the input to something a little less intensive: -F /dev/zero

Also, depending on latency, TCP's ACKing may slow you down. To flood the pipes, use UDP with -u.

Whether you can actually generate 10 Gbps of data depends completely on the performance of your nodes and their network uplinks.


To get speeds greater than 1Gbps, the -P flag will help you out.

iperf -c server.ip.example.com -P8 -w64k

From man iperf:

  -P, --parallel n
        number of parallel client threads to run

You don't have to do anything special on the server side. Just run iperf -s.