Networking – Understand iperf3 results

iperfnetworkingperformance

I'm trying to diagnose network performance in my house. I ran iperf3 on two Macs wired to a gigabit Ethernet switch (through cable runs in wall). My results were:

Connecting to host 10.0.1.192, port 5201  

[  5] local 10.0.1.51 port 50191 connected to 10.0.1.192 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  9.54 MBytes  80.0 Mbits/sec
[  5]   1.00-2.00   sec  11.3 MBytes  94.7 Mbits/sec
[  5]   2.00-3.00   sec  11.3 MBytes  94.5 Mbits/sec
[  5]   3.00-4.00   sec  11.2 MBytes  94.2 Mbits/sec
[  5]   4.00-5.00   sec  11.2 MBytes  93.6 Mbits/sec
[  5]   5.00-6.00   sec  11.3 MBytes  94.6 Mbits/sec
[  5]   6.00-7.00   sec  11.2 MBytes  94.2 Mbits/sec
[  5]   7.00-8.00   sec  11.1 MBytes  93.5 Mbits/sec
[  5]   8.00-9.00   sec  11.3 MBytes  94.7 Mbits/sec
[  5]   9.00-10.00  sec  11.2 MBytes  94.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   111 MBytes  92.8 Mbits/sec - sender
[  5]   0.00-10.05  sec   110 MBytes  92.0 Mbits/sec - receiver

So this outputs results for each second for 10 seconds. I'm not seeing any warning messages that the documentation of iperf3 mentioned hinting that I need to apply special parameters other than the default iperf3 -c [ip].

My questions are:

  1. So I assume the Transfer column means how much data it sent during the 1 second interval?
  2. If yes for #1, why doesn't it match the Bitrate of 'data/second'? If no for #1, can you explain what Transfer and Bitrate really mean in layman's terms?
  3. I assume this is pathetic performance for two Macs plugged in via ethernet to a gigabit router?
  4. Is there a page/reference somewhere that describes what sort of numbers I should get if I have a 100 Mbit/s vs 1000 Mbit/s connection for wired connections in optimal conditions?

I don't know if I have bad wire connections throughout the house or not, but just trying to get a handle on my actual performance before I make any drastic decisions (such as gutting the wiring in my house and pulling new wire and getting new hardware).

I followed test from this article and its author seems to get 700/600 numbers in his wired results, so I feel something is way off.

Hardware being tested:

  • Netgear GS608 8 x 10/100/1000Mbps Gigabit Ethernet Switch
  • 21.5" Mid 2011 iMac running on El Capitan
  • MacBook Pro 15" Retina, Late 2013 using Cable Matters USB->3.0 adapter to ethernet

Best Answer

iperf's Transfer column is in MebiBytes: 1,048,576's of 8-bit Bytes.
iperf's Bitrate column is in megabits: 1,000,000's of 1-bit bits.
There are roughly 8.4 megabits per MebiByte.

94 Mbits/sec is the max rate you can get for TCP/IP throughput on 100 megabit Ethernet with standard sized frames. If this was gigabit Ethernet, you should be seeing 942 megabits/sec.

Your results show that you've only established a 100 megabit link between the two Macs. Check your wiring to make sure you have all 4 pairs, with the right pinout on both ends, and make doubly sure you haven't split a pair. Also double check your USB Ethernet dongle to make sure it's gigabit. A lot of USB Ethernet dongles are only 10/100. Make sure both Macs say its gigabit Ethernet and make sure the switch thinks both ports have negotiated gigabit.

I'm not sure why you were only expecting 600-700 megabits per second. Macs have been able to saturate gigabit Ethernet at 942 mbps on iperf since around the 1GHz PPC G4 Macs in ~2001. Anything less and you have faulty wiring that doesn't meet the Cat5 spec or is longer than 100m.

Related Question