유선 네트워크가 매우 느림

유선 네트워크가 매우 느림

우리 사무실에서는 최근 Ubuntu 20.04를 사용하는 Dell Latitude 5420 노트북 20대를 구입했는데 이더넷 연결에 큰 문제가 있어서 다운로드가 매우 느리지만 업로드는 양호합니다.

편집하다: 문제는 이 노트북 시리즈, 통합 이더넷 및 Ubuntu에서만 발생합니다(아래 테스트 참조). Wi-Fi는 완벽하게 작동하고, 이 노트북에 Windows를 설치하면 이더넷도 완벽하게 작동하며, 이더넷 USB 어댑터나 이더넷이 있는 도킹스테이션을 사용하면 문제가 없습니다.

하드웨어 측면에서 노트북에는 통합 네트워크 카드인 Intel "Ethernet Connection I219-LM"이 장착되어 있습니다.

아래는 제가 수행한 테스트입니다.

우리 집에서 수행된 테스트 조건:

  • 사용된 인터넷 연결 유형: VDSL2+
  • 다운로드 속도: 40,43Mbps
  • 업로드 속도: 5,70Mbps

내 사무실에서 수행된 테스트 조건:

  • 사용된 인터넷 연결 유형: 광섬유
  • 다운로드 속도: 756,21Mbps
  • 업로드 속도: 337,64Mbps

제가 수행한 테스트는 다음과 같습니다.

  • 우분투 20.04.1 LTS "즉시 사용 가능"

    • 설치 후 결과: 느린 이더넷(@home = 다운로드: 0,89Mbps / 업로드: 4,82Mbps)
    • 설치 후 커널 버전: 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,57Mbps / 업로드: 4,61Mbps)
  • Ubuntu 20.04.2 LTS "USB에서 설치"

    • 설치 후 결과: 느린 이더넷(@home = 다운로드: 0,89Mbps / 업로드: 4,82Mbps) (@office = 다운로드: 6,36Mbps / 업로드: 327,99Mbps)
    • 설치 후 커널 버전: 5.8.0-43-generic
    • 설치 후 이더넷 드라이버 버전: Intel e1000e 3.2.6-k
    • 업데이트 후 커널 버전: 5.8.0-55-generic
    • 업데이트 후 이더넷 드라이버 버전: Intel e1000e 3.2.6-k
    • 업데이트 후 결과: 느린 이더넷(@home = 다운로드: 0,68Mbps / 업로드: 4,52Mbps) (@office = 다운로드: 5,31Mbps / 업로드: 411,82Mbps)
    • 3.8.4 및 3.8.7 드라이버 수동 설치 시도 실패: 드라이버 컴파일 중 오류 발생
  • Ubuntu 20.04.2 LTS "USB의 라이브 세션"

    • 라이브 세션 결과: 이더넷이 "약간 덜" 느립니다(@home = 다운로드: 15,60Mbps / 업로드: 4,41Mbps)
    • 커널 버전: 5.8.0-43-일반
    • 이더넷 드라이버 버전: Intel e1000e 3.2.6-k
  • Ubuntu 18.04 LTS "USB에서 설치"

    • 설치 후 결과: 시스템에 카드가 표시되었지만 청구되지 않았습니다.
    • 커널 버전: 5.4.0-74-일반
    • 이더넷 드라이버 버전: 없음
    • 업데이트 후 커널 버전: 5.4.0-74-generic
    • 업데이트 후 이더넷 드라이버 버전: 없음
    • 수동 설치 후 이더넷 드라이버 버전: 3.8.4-NAPI(Intel 사이트에서 다운로드)
    • 업데이트 후 결과: 이더넷 정상(@home = 다운로드: 40,29Mbps / 업로드: 5,37Mbps)
  • Ubuntu 20.04.1 LTS "Dell Recovery ISO에서 설치"(Dell OS Recovery Tool 소프트웨어에서 다운로드)

    • 설치 후 결과: 느린 이더넷(@home = 다운로드: 0,87Mbps / 업로드: 4,73Mbps)
    • 설치 후 커널 버전: 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,56Mbps / 업로드: 4,49Mbps)
    • 3.8.4 및 3.8.7 드라이버 수동 설치 시도 실패: 커널 5.6.0-1032-oem 및 5.10.0-1029-oem을 사용한 드라이버 컴파일 중 오류 발생
  • Ubuntu 21.04 "USB에서 설치"

    • 설치 후 결과: 느린 이더넷(@office = 다운로드: 1,52Mbps / 업로드: 400,58Mbps)
    • 설치 후 커널 버전: 5.11.0-16-generic
    • 설치 후 이더넷 드라이버 버전: 5.11.0-16-generic(커널에 포함된 드라이버)
    • 업데이트 후 커널 버전: 5.11.0-18-generic
    • 업데이트 후 이더넷 드라이버 버전: 5.11.0-18-generic(커널에 포함된 드라이버)
    • 업데이트 후 결과: 느린 이더넷(@office = 다운로드: 2,22Mbps / 업로드: 410,05Mbps)
  • Windows 10 Professional(릴리스 21H1)

    • 설치 후 결과: 이더넷 ok(@office = 다운로드: 850,12Mbps / 업로드: 519,30Mbps)

따라서 이러한 모든 테스트 후에 볼 수 있듯이 이미 하드웨어 문제를 제외할 수 있습니다(받은 노트북 20대 중 테스트한 노트북 5~6대에서 문제가 발생했습니다.) Intel 드라이버를 수동으로 설치하고 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(Dell ISO가 아님)에서 Ubuntu를 다시 설치하고 SecureBoot를 비활성화한 후 마침내 새 Intel e1000e 드라이버를 성공적으로 설치했지만... 문제는 여전히 남아 있습니다...

  • 커널 5.8.0-43-generic(공식 Ubuntu ISO에서)

    • 3.8.7 드라이버 업데이트 후 결과: 느린 이더넷(@home = 다운로드: 0,16Mbps / 업로드: 2,38Mbps)
  • 커널 5.8.0-55-generic(공식 Ubuntu ISO에서)

    • 3.8.7 드라이버 업데이트 후 결과: 느린 이더넷(@home = 다운로드: 1.00Mbps / 업로드: 5.13Mbps)

나는 완전히 길을 잃었다고 고백합니다... 그것이 어디서 왔는지 아시나요?

그동안 주문 결과는 다음과 같습니다. 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은 지속성이 아니므로 재부팅할 때마다 다시 실행해야 합니다(또는 이에 대한 시작 스크립트를 생성해야 합니다).

관련 정보