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:
- So I assume the Transfer column means how much data it sent during the 1 second interval?
- 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?
- I assume this is pathetic performance for two Macs plugged in via ethernet to a gigabit router?
- 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.