Проводная сеть очень медленная

Проводная сеть очень медленная

Недавно мы в моем офисе купили двадцать ноутбуков Dell Latitude 5420 под управлением Ubuntu 20.04, и у нас возникла большая проблема с подключением по Ethernet, загрузка идет очень медленно (но загрузка идет хорошо).

Редактировать: Проблема только на этой серии ноутбуков, только со встроенным Ethernet и только на Ubuntu (см. тесты ниже). Wi-Fi работает отлично, Ethernet тоже работает отлично, если мы устанавливаем Windows на эти ноутбуки, и у нас не возникает проблем, если мы используем адаптер Ethernet USB или док-станцию ​​с Ethernet на ней.

С точки зрения аппаратной части ноутбуки оснащены интегрированными сетевыми картами: Intel «Ethernet Connection I219-LM».

Ниже приведены тесты, которые я провел.

Условия проведения испытаний у меня дома:

  • Тип используемого интернет-подключения: VDSL2+
  • Скорость загрузки: 40,43 Мбит/с
  • Скорость загрузки: 5,70 Мбит/с

Условия проведения испытаний в моем офисе:

  • Тип используемого интернет-подключения: Оптоволокно
  • Скорость загрузки: 756,21 Мбит/с
  • Скорость загрузки: 337,64 Мбит/с

Вот тесты, которые я провел:

  • Ubuntu 20.04.1 LTS «из коробки»

    • Результат после установки: Медленный Ethernet (@home = загрузка: 0,89 Мбит/с / отправка: 4,82 Мбит/с)
    • Версия ядра после установки: 5.6.0-1032-oem
    • Версия драйвера Ethernet после установки: Intel e1000e 3.2.6-k
    • Версия ядра после обновления: 5.10.0-1029-oem
    • Версия драйвера Ethernet после обновления: Intel e1000e 5.10.0-1029-oem (драйвер включен в ядро)
    • Результат после обновления: Медленный Ethernet (@ home = загрузка: 0,57 Мбит/с / отправка: 4,61 Мбит/с)
  • Ubuntu 20.04.2 LTS «установка с USB»

    • Результат после установки: Медленный Ethernet (@home = загрузка: 0,89 Мбит/с / отправка: 4,82 Мбит/с) (@office = загрузка: 6,36 Мбит/с / отправка: 327,99 Мбит/с)
    • Версия ядра после установки: 5.8.0-43-generic
    • Версия драйвера Ethernet после установки: Intel e1000e 3.2.6-k
    • Версия ядра после обновления: 5.8.0-55-generic
    • Версия драйвера Ethernet после обновления: Intel e1000e 3.2.6-k
    • Результат после обновления: Медленный Ethernet (@home = загрузка: 0,68 Мбит/с / отправка: 4,52 Мбит/с) (@office = загрузка: 5,31 Мбит/с / отправка: 411,82 Мбит/с)
    • Неудачные попытки вручную установить драйвера 3.8.4 и 3.8.7: Ошибки при компиляции драйвера
  • Ubuntu 20.04.2 LTS «живой сеанс с USB»

    • Результат живого сеанса: Ethernet «немного» медленный (@home = загрузка: 15,60 Мбит/с / отправка: 4,41 Мбит/с)
    • Версия ядра: 5.8.0-43-generic
    • Версия драйвера Ethernet: Intel e1000e 3.2.6-k
  • Ubuntu 18.04 LTS «установка с USB»

    • Результат после установки: Карта видна системе, но не востребована.
    • Версия ядра: 5.4.0-74-generic
    • Версия драйвера Ethernet: Нет
    • Версия ядра после обновления: 5.4.0-74-generic
    • Версия драйвера Ethernet после обновления: Нет
    • Версия драйвера Ethernet после ручной установки: 3.8.4-NAPI (скачана с сайта Intel)
    • Результат после обновления: Ethernet в порядке (@home = загрузка: 40,29 Мбит/с / отправка: 5,37 Мбит/с)
  • Ubuntu 20.04.1 LTS «установить из образа восстановления Dell iso» (загружается из программного обеспечения Dell OS Recovery Tool)

    • Результат после установки: Медленный Ethernet (@home = загрузка: 0,87 Мбит/с / отправка: 4,73 Мбит/с)
    • Версия ядра после установки: 5.6.0-1032-oem
    • Версия драйвера Ethernet после установки: Intel e1000e 3.2.6-k
    • Версия ядра после обновления: 5.10.0-1029-oem
    • Версия драйвера Ethernet после обновления: Intel e1000e 5.10.0-1029-oem (драйвер включен в ядро)
    • Результат после обновления: Медленный Ethernet (@home = загрузка: 0,56 Мбит/с / отправка: 4,49 Мбит/с)
    • Неудачные попытки вручную установить драйвера 3.8.4 и 3.8.7: Ошибки при компиляции драйвера с ядрами 5.6.0-1032-oem и 5.10.0-1029-oem
  • Ubuntu 21.04 «установка с USB»

    • Результат после установки: Медленный Ethernet (@office = загрузка: 1,52 Мбит/с / отправка: 400,58 Мбит/с)
    • Версия ядра после установки: 5.11.0-16-generic
    • Версия драйвера Ethernet после установки: 5.11.0-16-generic (драйвер включен в ядро)
    • Версия ядра после обновления: 5.11.0-18-generic
    • Версия драйвера Ethernet после обновления: 5.11.0-18-generic (драйвер включен в ядро)
    • Результат после обновления: Медленный Ethernet (@office = загрузка: 2,22 Мбит/с / отправка: 410,05 Мбит/с)
  • Windows 10 Professionnel (выпуск 21H1)

    • Результат после установки: Ethernet в порядке (@office = загрузка: 850,12 Мбит/с / отправка: 519,30 Мбит/с)

Итак, как мы видим после всех этих тестов, мы уже можем исключить аппаратную проблему (проблема присутствует на 5 или 6 протестированных ноутбуках из 20 полученных ноутбуков) и пропускная способность идеальна в Ubuntu 18.04 после ручной установки драйверов Intel и в Windows.

Сначала я думал, что решением будет установка более новой версии драйвера «Intel e1000e», но когда я пытаюсь скомпилировать его в Ubuntu, установленной из «Dell ISO», я получаю эти ошибки (извините за французский язык) :

  • На ядре 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
    

После переустановки Ubuntu с официального ISO-образа (не Dell) и отключения SecureBoot мне наконец-то удалось установить новый драйвер Intel e1000e... но... проблема все еще осталась...

  • На ядре 5.8.0-43-generic (из официального образа Ubuntu ISO)

    • Результат после обновления драйвера 3.8.7: Медленный Ethernet (@home = загрузка: 0,16 Мбит/с / отправка: 2,38 Мбит/с)
  • На ядре 5.8.0-55-generic (из официального образа Ubuntu ISO)

    • Результат после обновления драйвера 3.8.7: Медленный Ethernet (@home = загрузка: 1,00 Мбит/с / отправка: 5,13 Мбит/с)

Признаюсь, я совсем запутался... Не знаете, откуда это могло взяться?

А пока вот результат заказа 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

Наконец, кто-то, у кого точно такая же проблема. Я подал баг на launchpad: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 не является постоянно работающим, поэтому вам придется запускать его снова при каждой перезагрузке (или создать для этого скрипт запуска).

Связанный контент