Baixa taxa de transferência e perda de pacotes com o controlador Ethernet Qualcomm Atheros Killer E2200 ao acessar WAN

1

Eu recentemente mudei para o Linux como sistema operacional principal no meu sistema principal. Estou tendo problemas estranhos com o controlador Ethernet Gigabit Qualcomm Atheros Killer E2200. Este controlador Ethernet é parte da minha placa-mãe para jogos MSI Z87-G45.

Descrição do problema
Ao acessar a Internet pública, o cartão fica em torno de 20 a 30 Mbit / s, enquanto eu tenho acesso a uma conexão de 50 Mbit / s. Além disso, quando o cartão fica com essa velocidade, estou com muita perda de pacotes.

Para dar um exemplo: um download do Steam é de 2 a 3MB / s, e quando um download está ativo, tenho muita perda de pacotes no Mumble (cliente VOIP) e algumas outras conexões tendem a cair periodicamente.

Minha LAN é limitada a 100 Mbit / s por causa de um comutador de rede. Mas, claro, 20 a 30Mbit / s nem chega perto.

Notas adicionais

  • Ao acessar dispositivos LAN, como meu NAS, o throughput total é usado e tudo parece funcionar bem. Assim, esse problema só ocorre ao acessar a Internet pública.
  • Tudo funcionou bem na minha instalação do Windows 7, com ~ 50Mbit / s, sem perda de pacotes ou conexão.
  • Eu só começo a notar perda de pacotes quando a conexão WAN é "limitada", não com uso abaixo de 5Mbit / s.
  • Eu não instalei nenhum driver adicional manualmente. O cartão funcionou da caixa com uma nova instalação, mais ou menos.

Informações do sistema

$ ~> lspci | grep Killer
03:00.0 Ethernet controller: Qualcomm Atheros Killer E220x Gigabit Ethernet Controller (rev 13)


$ ~> screenfetch -n
 timvisee@AxiomLinux
 OS: Ubuntu 16.10 yakkety
 Kernel: x86_64 Linux 4.8.0-34-generic
 Uptime: 19h 3m
 Packages: 2388
 Shell: fish
 Resolution: 3200x1097
 DE: Gnome 
 WM: GNOME Shell
 WM Theme: Adwaita, Adapta-Nokto [GTK2], Adapta-Nokto [GTK3]
 Icon Theme: Papirus-Dark
 Font: Cantarell 11
 CPU: Intel Core i5-4670K CPU @ 3.8GHz
 GPU: GeForce GTX 550 Ti
 RAM: 5480MiB / 15991MiB


$ ~> ip -s link
...
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 44:8a:5b:24:46:50 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    32490908621 22983929 0       0       0       15751   
    TX: bytes  packets  errors  dropped carrier collsns 
    2694939812 14217026 0       0       0       0 
...


$ ~> lspci -v | grep Killer -A11
03:00.0 Ethernet controller: Qualcomm Atheros Killer E220x Gigabit Ethernet Controller (rev 13)
    Subsystem: Micro-Star International Co., Ltd. [MSI] Killer E220x Gigabit Ethernet Controller
    Flags: bus master, fast devsel, latency 0, IRQ 30
    Memory at f6100000 (64-bit, non-prefetchable) [size=256K]
    I/O ports at d000 [size=128]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Express Endpoint, MSI 00
    Capabilities: [c0] MSI: Enable+ Count=1/16 Maskable+ 64bit+
    Capabilities: [d8] MSI-X: Enable- Count=16 Masked-
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [180] Device Serial Number ff-24-46-50-44-8a-5b-ff
    Kernel driver in use: alx
    Kernel modules: alx


$ ~> sudo netstat -s | egrep -i 'loss|retran'
    24 segments retransmited
    TCPLossProbes: 23
    TCPLossProbeRecovery: 1
    TCPSynRetrans: 4


$ ~> sudo ping -s 1 -f -c 1000 -w 5 timvisee.com
PING timvisee.com (159.253.1.168) 1(29) bytes of data.
--- timvisee.com ping statistics ---
304 packets transmitted, 157 received, 48% packet loss, time 4990ms
pipe 5, ipg/ewma 16.469/0.000 ms


$ ~> sudo ethtool enp3s0
Settings for enp3s0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Current message level: 0x000060e4 (24804)
                   link ifup rx_err tx_err hw wol
    Link detected: yes


$ ~> modinfo alx | grep version
srcversion:     148031F2236BBDAF23DA652
vermagic:       4.8.0-37-generic SMP mod_unload modversions

Perda de pacotes em Mumble
Que o último comando mostrado acima declara que não há erros de pacote e / ou quedas. Mumble afirma outra coisa embora. Esquisito.

O que está causando esse problema? O limite de conexão com a Internet pública e os pacotes sendo descartados. E como posso consertar isso? Isso ocorre porque não há um daemon em execução nesta máquina gerenciando as prioridades do aplicativo, como no Windows, talvez?

    
por Tim Visee 29.01.2017 / 13:42

0 respostas