![有线网络非常慢](https://linux22.com/image/1070725/%E6%9C%89%E7%BA%BF%E7%BD%91%E7%BB%9C%E9%9D%9E%E5%B8%B8%E6%85%A2.png)
在我的办公室,我们最近购买了 20 台运行 Ubuntu 20.04 的戴尔 Latitude 5420 笔记本电脑,我们的以太网连接出现了很大的问题,下载速度非常慢(但上传速度很好)。
编辑:问题仅出现在此笔记本电脑系列上,仅配备集成以太网且仅在 Ubuntu 上出现(请参阅下面的测试)。如果我们在此笔记本电脑上安装 Windows,Wifi 运行正常,以太网也运行正常,如果我们使用以太网 USB 适配器或带有以太网的扩展坞,则不会出现问题。
硬件方面,笔记本电脑配备了集成网卡:英特尔“Ethernet Connection I219-LM”。
以下是我所做的测试。
在我家进行测试的条件:
- 使用的互联网连接类型:VDSL2+
- 下载速度:40,43 Mbps
- 上传速度:5.70 Mbps
在我的办公室进行测试的条件:
- 使用的互联网连接类型:光纤
- 下载速度:756,21 Mbps
- 上传速度:337,64 Mbps
以下是我进行的测试:
Ubuntu 20.04.1 LTS“开箱即用”
- 安装后的结果:以太网速度慢 (@home = 下载:0,89 Mbps / 上传:4,82 Mbps)
- 安装后的内核版本:5.6.0-1032-oem
- 安装后的以太网驱动程序版本:Intel e1000e 3.2.6-k
- 更新后内核版本:5.10.0-1029-oem
- 更新后的以太网驱动版本:Intel e1000e 5.10.0-1029-oem(内核中包含的驱动)
- 更新后的结果:以太网速度慢(@ home = 下载:0,57 Mbps / 上传:4,61 Mbps)
Ubuntu 20.04.2 LTS“从 USB 安装”
- 安装后的结果:以太网速度慢 (@home = 下载:0,89 Mbps / 上传:4,82 Mbps) (@office = 下载:6,36 Mbps / 上传:327,99 Mbps)
- 安装后的内核版本:5.8.0-43-generic
- 安装后的以太网驱动程序版本:Intel e1000e 3.2.6-k
- 更新后内核版本:5.8.0-55-generic
- 更新后的以太网驱动程序版本:Intel e1000e 3.2.6-k
- 更新后的结果:以太网速度慢 (@home = 下载:0,68 Mbps / 上传:4,52 Mbps) (@office = 下载:5,31 Mbps / 上传:411,82 Mbps)
- 手动安装 3.8.4 和 3.8.7 驱动程序的尝试失败:驱动程序编译期间出错
Ubuntu 20.04.2 LTS“通过 USB 进行实时会话”
- 实时会话结果:以太网“稍微”慢一点(@home = 下载:15,60 Mbps / 上传:4,41 Mbps)
- 内核版本:5.8.0-43-generic
- 以太网驱动程序版本:Intel e1000e 3.2.6-k
Ubuntu 18.04 LTS“从 USB 安装”
- 安装后的结果:系统看到卡但未被认领
- 内核版本:5.4.0-74-generic
- 以太网驱动程序版本:无
- 更新后内核版本:5.4.0-74-generic
- 更新后的以太网驱动程序版本:无
- 手动安装后的以太网驱动程序版本:3.8.4-NAPI(从英特尔网站下载)
- 更新后的结果:以太网正常(@home = 下载:40,29 Mbps / 上传:5,37 Mbps)
Ubuntu 20.04.1 LTS“从 Dell 恢复 iso 安装”(从 Dell OS Recovery Tool 软件下载)
- 安装后的结果:以太网速度慢 (@home = 下载:0,87 Mbps / 上传:4,73 Mbps)
- 安装后的内核版本:5.6.0-1032-oem
- 安装后的以太网驱动程序版本:Intel e1000e 3.2.6-k
- 更新后内核版本:5.10.0-1029-oem
- 更新后的以太网驱动版本:Intel e1000e 5.10.0-1029-oem(内核中包含的驱动)
- 更新后的结果:以太网速度慢 (@home = 下载:0.56 Mbps / 上传:4.49 Mbps)
- 手动安装 3.8.4 和 3.8.7 驱动程序的尝试失败:使用内核 5.6.0-1032-oem 和 5.10.0-1029-oem 编译驱动程序时出错
Ubuntu 21.04“从 USB 安装”
- 安装后的结果:以太网速度慢 (@office = 下载:1,52 Mbps / 上传:400,58 Mbps)
- 安装后的内核版本:5.11.0-16-generic
- 安装后的以太网驱动版本:5.11.0-16-generic(内核中包含的驱动)
- 更新后内核版本:5.11.0-18-generic
- 更新后的以太网驱动版本:5.11.0-18-generic(内核中包含的驱动)
- 更新后的结果:以太网速度慢 (@office = 下载:2,22 Mbps / 上传:410,05 Mbps)
Windows 10 专业版(版本 21H1)
- 安装后的结果:以太网正常(@office = 下载:850,12 Mbps / 上传:519,30 Mbps)
因此,经过所有这些测试后,我们可以看出,我们已经可以排除硬件问题(在收到的 20 台笔记本电脑中,有 5 或 6 台笔记本电脑存在此问题),在手动安装英特尔驱动程序并运行于 Windows 后,Ubuntu 18.04 上的带宽是完美的。
起初,我认为解决方案是能够安装较新版本的“Intel e1000e”驱动程序,但当我尝试在从“Dell ISO”安装的 Ubuntu 上编译它时,我收到这些错误(抱歉,法语不好):
在内核 5.6.0-1032-oem 上(来自 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
在内核 5.10.0-1029-oem 上(来自 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
从官方 ISO(不是戴尔的)重新安装 Ubuntu 并禁用 SecureBoot 后,我终于成功安装了新的 Intel e1000e 驱动程序......但是......问题仍然存在......
在内核 5.8.0-43-generic 上(来自官方 Ubuntu ISO)
- 3.8.7 驱动程序更新后的结果:以太网速度慢 (@home = 下载:0.16 Mbps / 上传:2.38 Mbps)
在内核 5.8.0-55-generic 上(来自官方 Ubuntu ISO)
- 3.8.7 驱动程序更新后的结果:以太网速度慢 (@home = 下载:1.00 Mbps / 上传:5.13 Mbps)
我承认我完全迷失了...你知道它是从哪里来的吗?
与此同时,这是订单的结果lshw -C network
,不要犹豫,向我询问其他订单的结果,我会发布它们。
$ 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
预先感谢您的帮助 ! :)
扬
更新
nestat -i
以下是和命令的结果netstat -s
(在我家的网络上):
$ 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
$ 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:
答案1
最后,有人遇到了完全相同的问题。我在启动板上提交了一个错误:e1000e 非常慢。
你也可以在那里发表评论吗?或者 +1 之类的?那里也有解决方法。
诀窍是禁用aspm
作为pcie_aspm=off
内核选项/etc/default/grub
,如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off"
运行之后:
update-grub
pcie_aspm
是某种电源管理装置,它可能会使我的网络控制器进入睡眠状态或发生其他操作,而将 USB 记忆棒插入笔记本电脑则会以某种方式将其唤醒。
答案2
尝试这个
sudo ethtool -C enp0s31f rx-usecs 6000
ethtool 不是持久性的,因此您需要每次重启时再次运行(或为此创建启动脚本)。