0

I have recently subscribed to FTTH and in order to take advantage of all the available bandwidth, I have upgraded my home network to Gigabit, which basically meant replacing my router since all the PCs and cables were already capable of gigabit speeds.

Everything works fine except for one computer running Debian: the Gigabit link is recognized, however when I test the network bandwidth (using iperf) the maximum throughput I get is about 240 Mbps.

federico@debianpc:~$ iperf -c ping.online.net -i 2 -t 10
------------------------------------------------------------
Client connecting to ping.online.net, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.201 port 34872 connected with 62.210.18.40 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 2.0 sec  58.2 MBytes   244 Mbits/sec
[  3]  2.0- 4.0 sec  58.1 MBytes   244 Mbits/sec
[  3]  4.0- 6.0 sec  58.1 MBytes   244 Mbits/sec
[  3]  6.0- 8.0 sec  58.1 MBytes   244 Mbits/sec
[  3]  8.0-10.0 sec  58.0 MBytes   243 Mbits/sec
[  3]  0.0-10.0 sec   291 MBytes   244 Mbits/sec

What I have already checked:

  • Internet connection --> not an issue because iperf gives expected results (about 700 Mbps) from other computers connected to the same router
  • Ethernet patch cable --> not an issue as it gives full speed when connected to another computer

At this point, I am guessing between:

  • Ethernet controller not able to sustain Gigabit speed? LAN Controller is an Atheros AR8131 embedded on Gigabyte G31M-ES2L motherboard (bought in 2010)
  • Driver issue? The computer is running Debian 7.9 (Wheezy) with kernel 3.2.73-2+deb7u3 and the driver used by the card is atl1c (version: 1.0.1.0-NAPI that shipped with the distribution)

Have you already encountered the issue? Do you have any idea where the problem might come from?

4
  • If I were you, I'd still do a local iperf without going through the NAT, just as an extra data point. Also, what's the ping RTT from your Debian box to ping.online.net? A 23.5KiByte TCP window seems like it could be on the small side for a long distance multi-hop gigabit path.
    – Spiff
    Commented Mar 26, 2016 at 23:10
  • Adding to my last comment, at gigabit rates with even a fast 20ms RTT (RTT = Round Trip Time = "ping time") (and 20ms assumes you're in France just like ping.online.net is), your TCP window needs to be at least 2.38MiByte. If your RTT is more than that, and it probably is, then your window needs to be even bigger. I think you should try adding -w 10M to your iperf arguments to force a 10 MiByte window, and see if that fixes things. If it does, then see how your have your Linux TCP stack tuning set up, to make sure you have TCP window autoscaling enabled for up to 10MiBytes.
    – Spiff
    Commented Mar 27, 2016 at 4:14
  • Hi and thanks for your help! RTT is a bit less than 3ms, but the TCP window size is probably an issue I need to investigate a little bit further.
    – Federico
    Commented Mar 27, 2016 at 18:02
  • 3ms is a nice fast RTT, but still implies that your TCP window should be over 366KiBytes, so almost 16x what it defaulted to. And that's assuming the RTT doesn't go up when the network is loaded. I might try an iperf test with -w 512K.
    – Spiff
    Commented Mar 28, 2016 at 1:29

0

You must log in to answer this question.

Browse other questions tagged .