Score:0

Ethernet speed limited to ~500Mbps on gigabit network & internet

bj flag

I was recently getting the following speeds when using the ookla speedtest cli...

$ speedtest 

   Speedtest by Ookla

      Server: ********
         ISP: TELUS
Idle Latency:     1.98 ms   (jitter: 0.08ms, low: 1.85ms, high: 2.05ms)
    Download:   913.40 Mbps (data used: 1.3 GB)                                                   
                  4.96 ms   (jitter: 0.86ms, low: 1.47ms, high: 10.53ms)
      Upload:   900.51 Mbps (data used: 1.2 GB)                                                   
                  4.99 ms   (jitter: 1.25ms, low: 1.52ms, high: 11.40ms)
 Packet Loss:     0.0%

Recently my speeds dropped to about 1/2 (i.e. ~500Mbps) and I can't figure out why...

I've done various troubleshooting and nothing has helped so far. Running out of ideas.

  • Rebooted
  • Checked physical cables. Laptop gets gigabit speeds using the same cable / switch port as the problem machine
  • Shutdown all docker containers and the docker services itself in case something was eating up bandwidth
  • Disabled ipv6

https://askubuntu.com/a/1232022/1636933

sudo vi /etc/gai.conf
Uncomment ::ffff:0:0/96  100

https://askubuntu.com/a/994916/1636933

sudo /sbin/ethtool eth0 # shows full duplex
docker network prune

sudo lshw -C network

  *-network                 
       description: Ethernet interface
       product: MCP79 Ethernet
       vendor: NVIDIA Corporation
       physical id: a
       bus info: pci@0000:00:0a.0
       logical name: enp0s10
       version: b1
       serial: 90:fb:a6:4c:7d:26
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 66MHz
       capabilities: pm bus_master cap_list ethernet physical mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=forcedeth driverversion=0.64 duplex=full ip=192.168.1.101 latency=0 link=yes maxlatency=20 mingnt=1 multicast=yes port=MII speed=1Gbit/s
       resources: irq:20 memory:fae7d000-fae7dfff ioport:d080(size=8) memory:fae7e800-fae7e8ff memory:fae7e400-fae7e40f
  *-network DISABLED
       description: Wireless interface
       product: RT3090 Wireless 802.11n 1T/1R PCIe
       vendor: Ralink corp.
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: wlp5s0
       version: 00
       serial: 70:f1:a1:40:20:67
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rt2800pci driverversion=4.15.0-194-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11
       resources: irq:19 memory:febf0000-febfffff
  *-network
       description: Ethernet interface
       physical id: 1
       logical name: vethdde1b89
       serial: ba:25:08:f9:20:9e
       size: 10Gbit/s
       capabilities: ethernet physical
       configuration: autonegotiation=off broadcast=yes driver=veth driverversion=1.0 duplex=full link=yes multicast=yes port=twisted pair speed=10Gbit/s
ru flag
fyi disabling IPv6 is no longer a 'safe' bandwidth saving solution, it doesnt really solve *bandwidth* issues at all
user1636933 avatar
bj flag
Thanks for the tip @ThomasWard. Do you have any sources I can read up for that topic?
Terrance avatar
id flag
`sudo apt-get update` doesn't upgrade your version of Ubuntu. That is done by the command of `sudo do-release-upgrade`. Please be precise in your versions. Also, Ubuntu 18.04 will go EOL in April of next year so you might want to consider upgrading to 20.04 LTS or 22.04 LTS. What is the output of `sudo lshw -C network` and add the results to your question.
us flag
Is this reproducible between two devices connected directly (not via a switch)? Both devices running the same OS and powerful enough / no recent config changes?
user1636933 avatar
bj flag
@Terrance interesting about the upgrade. I wasn't even aware of the `do-release-upgrade` command until now so not sure how it got upgraded then. At some point I was on 16.x and now I'm on 18.04. In any case I have added the `lshw -C network` output to the post.
us flag
"Laptop gets gigabit speeds using the same cable / switch port as the problem machine" - this is referring to speed between laptop and what other device?
user1636933 avatar
bj flag
@thomasrutter "this is referring to speed between laptop and what other device?" laptop connected to the same switch / port as the problem machine with the same cable and running a test on speedtest.net which is the same test I'm running on the problem machine. I've updated the post for added clarity on the test I'm running.
Terrance avatar
id flag
I am wondering if you need the `nfe` ethernet driver instead of the `forcedeth` driver. https://manpages.ubuntu.com/manpages/bionic/man4/if_nfe.4freebsd.html My old MB had the NVIDIA chipset on it, but my new one doesn't so I may not be much help past this here even though I still use Legacy products.
Nmath avatar
ng flag
There a lot of factors that affect internet transfer speeds. Most of them are out of your control. When troubleshooting, it's important to get rid of extra variables. So if you're testing your speed on speedtest.net, this is not necessarily going to help you identify a local network issue and even less likely to help you identify an Ubuntu-related issue.
user1636933 avatar
bj flag
@Nmath that's true but using the same cable / port as the problem machine my laptop can consistently get very close to ~1 Gbps speed tests back to back to back while the problem machine is the opposite. ~500 Mbps back to back to back. I suppose something in my router could be causing slow downs for that specific machine (which would be odd) but that would likely effect it on the LAN too. I don't have any special machine specific config in my router.
Nmath avatar
ng flag
Fair point. Is the laptop also running Ubuntu?
us flag
You can't use speedtest.net to test ethernet speed, you have to eliminate variables outside the connection from one node to another - you'll need to isolate the test down to a pure test between the ethernet adapters of two devices, ideally without even a switch between. Use iperf3 for example.
Artur Meinild avatar
vn flag
You should use a local `iperf3` server to test network speeds. As others have mentioned, you can't really rely on speedtest.net
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.