I have an rpi 3B+ running Raspbian connected to a gigabit switch, and a Debian machine on the same switch. Both systems negotiated a gigabit link to the switch:
$ sudo mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
(The output is identical on both systems.)
Nonetheless, an iperf test is unable to exceed 100Mbps throughput even though the 3B+ should be capable of ~330Mbps.
$ iperf3 -c 172.16.1.171
Connecting to host 172.16.1.171, port 5201
[ 4] local 172.16.1.21 port 52356 connected to 172.16.1.171 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 12.1 MBytes 102 Mbits/sec 0 151 KBytes
[ 4] 1.00-2.00 sec 11.2 MBytes 93.8 Mbits/sec 0 151 KBytes
[ 4] 2.00-3.00 sec 11.2 MBytes 94.4 Mbits/sec 0 151 KBytes
[ 4] 3.00-4.00 sec 11.2 MBytes 94.4 Mbits/sec 0 158 KBytes
[ 4] 4.00-5.00 sec 11.2 MBytes 93.8 Mbits/sec 0 165 KBytes
[ 4] 5.00-6.00 sec 11.2 MBytes 94.4 Mbits/sec 0 182 KBytes
[ 4] 6.00-7.00 sec 11.2 MBytes 94.4 Mbits/sec 0 182 KBytes
[ 4] 7.00-8.00 sec 11.2 MBytes 94.4 Mbits/sec 0 182 KBytes
[ 4] 8.00-9.00 sec 11.2 MBytes 93.8 Mbits/sec 0 182 KBytes
[ 4] 9.00-10.00 sec 11.2 MBytes 94.4 Mbits/sec 0 182 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 113 MBytes 94.9 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 112 MBytes 94.0 Mbits/sec receiver
iperf Done.
A test with -R
shows comparable results.
The results seem to indicate that at least one link between the pi and my desktop linked at 100Mbps instead of 1000Mbps but I've already verified that this isn't the case. All cabling between the two systems is at least cat5e and some is cat6. Running iperf on other systems attached to the same switch shows results approaching 1Gbps.
Is there something I'm missing? Do I need to do something on the pi to achieve throughput above 100Mbps?