Wired network extremely slow
At my office, we recently buy twenty laptops Dell Latitude 5420 under Ubuntu 20.04 and we have a big problem with ethernet connexion, download is extremly slow (but upload is good).
Edit : The problem is only on this laptop series, only with integrated ethernet and only on Ubuntu (see the tests below). Wifi is working perfectly, Ethernet is working perfectly too if we install Windows on this laptops and we don't have problems if we use an Ethernet USB adapter or a dockstation with ethernet on it.
Hardware side, the laptops are equipped with integrated network cards : Intel "Ethernet Connection I219-LM".
Here is the tests I made :
Conditions of the tests performed at my home :
- Type of internet connection used:
VDSL2+
- Download speed :
40,43 Mbps
- Upload speed :
5,70 Mbps
Conditions of the tests performed at my office :
- Type of internet connection used:
Optical fiber
- Download speed :
756,21 Mbps
- Upload speed :
337,64 Mbps
Here are the tests I performed:
-
Ubuntu 20.04.1 LTS "Out Of The box"
- Result after installation =
Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps)
- Kernel version after installation =
5.6.0-1032-oem
- Ethernet driver version after installation =
Intel e1000e 3.2.6-k
- Kernel version after update =
5.10.0-1029-oem
- Ethernet driver version after update =
Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
- Result after update =
Slow Ethernet (@ home = download : 0,57 Mbps / upload : 4,61 Mbps)
- Result after installation =
-
Ubuntu 20.04.2 LTS "install from USB"
- Result after installation =
Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps) (@office = download : 6,36 Mbps / upload : 327,99 Mbps)
- Kernel version after installation =
5.8.0-43-generic
- Ethernet driver version after installation =
Intel e1000e 3.2.6-k
- Kernel version after update =
5.8.0-55-generic
- Ethernet driver version after update =
Intel e1000e 3.2.6-k
- Result after update =
Slow Ethernet (@home = download : 0,68 Mbps / upload : 4,52 Mbps) (@office = download : 5,31 Mbps / upload : 411,82 Mbps)
- Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver =
Errors during driver compilation
- Result after installation =
-
Ubuntu 20.04.2 LTS "live session from USB"
- Result on live session =
Ethernet "a little less" slow (@home = download : 15,60 Mbps / upload : 4,41 Mbps)
- Kernel version =
5.8.0-43-generic
- Ethernet driver version =
Intel e1000e 3.2.6-k
- Result on live session =
-
Ubuntu 18.04 LTS "install from USB"
- Result after installation =
Card seen by the system but not claimed
- Kernel version =
5.4.0-74-generic
- Ethernet driver version =
None
- Kernel version after update =
5.4.0-74-generic
- Ethernet driver version after update =
None
- Ethernet driver version after manual installation =
3.8.4-NAPI (downloaded from the Intel site)
- Result after update =
Ethernet ok (@home = download : 40,29 Mbps / upload : 5,37 Mbps)
- Result after installation =
-
Ubuntu 20.04.1 LTS "install from Dell recovery iso" (downloaded from the Dell OS Recovery Tool software)
- Result after installation =
Slow Ethernet (@home = download : 0,87 Mbps / upload : 4,73 Mbps)
- Kernel version after installation =
5.6.0-1032-oem
- Ethernet driver version after installation =
Intel e1000e 3.2.6-k
- Kernel version after update =
5.10.0-1029-oem
- Ethernet driver version after update =
Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
- Result after update =
Slow Ethernet (@home = download : 0,56 Mbps / upload : 4,49 Mbps)
- Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver =
Errors during driver compilation with kernels 5.6.0-1032-oem and 5.10.0-1029-oem
- Result after installation =
-
Ubuntu 21.04 "install from USB"
- Result after installation =
Slow Ethernet (@office = download : 1,52 Mbps / upload : 400,58 Mbps)
- Kernel version after installation =
5.11.0-16-generic
- Ethernet driver version after installation =
5.11.0-16-generic (driver included in the kernel)
- Kernel version after update =
5.11.0-18-generic
- Ethernet driver version after update =
5.11.0-18-generic (driver included in the kernel)
- Result after update =
Slow Ethernet (@office = download : 2,22 Mbps / upload : 410,05 Mbps)
- Result after installation =
-
Windows 10 Professionnel (release 21H1)
- Result after installation =
Ethernet ok (@office = download : 850,12 Mbps / upload : 519,30 Mbps)
- Result after installation =
So, as we can see after all these tests, we can already exclude a hardware problem (the problem is present on 5 or 6 laptops tested out of the 20 laptops received) and the bandwidth is perfect on Ubuntu 18.04 once the Intel drivers are manually installed and on Windows.
At first, I think the solution would be to be able to install a more recent version of the "Intel e1000e" driver but when I try to compile it on the Ubuntu installed from the "Dell ISO", I get these errors (sorry for the French language) :
- On kernel 5.6.0-1032-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make
*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but
*** the signing key cannot be found. Module signing has been
*** disabled for this build.
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.6.0-1032-oem »
CC [M] /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o
In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,
from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30:
/home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...
825 | #error UTS_UBUNTU_RELEASE_ABI is too large...
| ^~~~~
make[2]: *** [scripts/Makefile.build:276 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1
make[1]: *** [Makefile:1707 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.6.0-1032-oem »
make: *** [Makefile:73 : default] Erreur 2
- On kernel 5.10.0-1029-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make
*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but
*** the signing key cannot be found. Module signing has been
*** disabled for this build.
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.10.0-1029-oem »
CC [M] /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o
In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,
from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30:
/home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...
825 | #error UTS_UBUNTU_RELEASE_ABI is too large...
| ^~~~~
make[2]: *** [scripts/Makefile.build:287 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1
make[1]: *** [Makefile:1849 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.10.0-1029-oem »
make: *** [Makefile:73 : default] Erreur 2
After reinstalling Ubuntu from the official ISO (not the Dell one) and disabled SecureBoot, I finally successfully installed the new Intel e1000e driver... but... the problem is still here...
-
On kernel 5.8.0-43-generic (from official Ubuntu ISO)
- Result after 3.8.7 driver update =
Slow Ethernet (@home = download : 0,16 Mbps / upload : 2,38 Mbps)
- Result after 3.8.7 driver update =
-
On kernel 5.8.0-55-generic (from official Ubuntu ISO)
- Result after 3.8.7 driver update =
Slow Ethernet (@home = download : 1.00 Mbps / upload : 5.13 Mbps)
- Result after 3.8.7 driver update =
I confess that I am completely lost... Do you have any idea where it could come from?
In the meantime, here is the result of the lshw -C network
order, don't hesitate to ask me for the results of other orders, I will post them.
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo lshw -C network
*-network:1
description: Ethernet interface
produit: Ethernet Connection (13) I219-LM
fabricant: Intel Corporation
identifiant matériel: 1f.6
information bus: pci@0000:00:1f.6
nom logique: enp0s31f6
version: 20
numéro de série: 38:14:28:0f:32:1a
taille: 1Gbit/s
capacité: 1Gbit/s
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration : autonegotiation=on broadcast=yes driver=e1000e driverversion=3.8.7-NAPI duplex=full firmware=0.8-4 ip=192.168.1.31 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
ressources : irq:147 mémoire:a2300000-a231ffff
Thank you in advance for your help ! :)
Yann
Update
Here is the result of the nestat -i
and netstat -s
commands (on my network at home) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -i
Table d'interfaces noyau
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s31f 1500 29522 448 361 0 30261 0 0 0 BMRU
lo 65536 4572 0 0 0 4572 0 0 0 LRU
wlp0s20f 1500 7350 0 672 0 563 0 0 0 BMRU
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -s
Ip:
Forwarding: 2
50727 total packets received
6 with invalid addresses
0 forwarded
0 incoming packets discarded
49394 incoming packets delivered
43118 requests sent out
20 outgoing packets dropped
542 dropped because of missing route
Icmp:
67 ICMP messages received
0 input ICMP message failed
Histogramme d'entrée ICMP
destination unreachable: 67
762 ICMP messages sent
0 ICMP messages failed
Histogramme de sortie ICMP
destination unreachable: 762
IcmpMsg:
InType3: 67
OutType3: 762
Tcp:
545 active connection openings
0 passive connection openings
4 failed connection attempts
5 connection resets received
3 connections established
29486 segments received
40360 segments sent out
861 segments retransmitted
1 bad segments received
290 resets sent
Udp:
11379 packets received
1452 packets to unknown port received
0 packet receive errors
11028 packets sent
0 receive buffer errors
0 send buffer errors
IgnoredMulti: 5760
UdpLite:
TcpExt:
218 TCP sockets finished time wait in fast timer
164 delayed acks sent
Quick ack mode was activated 36 times
7910 packet headers predicted
6247 acknowledgments not containing data payload received
10413 predicted acknowledgments
TCPSackRecovery: 140
Detected reordering 1 times using SACK
6 congestion windows recovered without slow start after partial ack
TCPLostRetransmit: 100
490 fast retransmits
48 retransmits in slow start
TCPTimeouts: 95
TCPLossProbes: 300
TCPLossProbeRecovery: 30
TCPSackRecoveryFail: 7
TCPDSACKOldSent: 40
TCPDSACKOfoSent: 5
TCPDSACKRecv: 193
93 connections reset due to unexpected data
1 connections reset due to early user close
3 connections aborted due to timeout
TCPDSACKIgnoredOld: 1
TCPDSACKIgnoredNoUndo: 109
TCPSackShifted: 790
TCPSackMerged: 1396
TCPSackShiftFallback: 320
TCPRcvCoalesce: 1208
TCPOFOQueue: 1950
TCPOFOMerge: 5
TCPChallengeACK: 1
TCPSYNChallenge: 1
TCPAutoCorking: 157
TCPSynRetrans: 43
TCPOrigDataSent: 27241
TCPHystartDelayDetect: 13
TCPHystartDelayCwnd: 421
TCPKeepAlive: 612
TCPDelivered: 27555
TCPAckCompressed: 187
TcpTimeoutRehash: 95
TcpDuplicateDataRehash: 3
IpExt:
InMcastPkts: 2913
OutMcastPkts: 260
InBcastPkts: 5760
OutBcastPkts: 2
InOctets: 25001747
OutOctets: 37878931
InMcastOctets: 857652
OutMcastOctets: 17502
InBcastOctets: 5995183
OutBcastOctets: 108
InNoECTPkts: 52735
MPTcpExt:
Solution 1:
Finally, somebody who has exactly the same issue. I have filed a bug on launchpad: e1000e extremly slow.
Can you comment there too? Or +1 it or something? Workaround is there too.
The trick is to disable aspm
with pcie_aspm=off
as a kernel option in /etc/default/grub
, like this:
GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off"
After that run:
update-grub
pcie_aspm
is some sort of power management thingie which probably puts my network controller to sleep or something, and putting a USB memory stick in the laptop somehow wakes it up.