Por que o ping é tão lento?

9

Minha configuração:

Servidor na adega + switch GBit. Cabo longo para o telhado. Switch GBit. Eu tenho três computadores no telhado. Um deles possui apenas 100 MBit Ethernet, um laptop com GBit e um novo computador.

Tempos de ping do computador antigo de 100 MBit: 0,5ms em média Tempos de ping do laptop: 0,4ms em média Tempos de ping do meu novo computador: 5ms ou 30ms ou 200ms em média, mas geralmente vejo tempos de ping de até 980ms. Em geral, o rendimento é muito instável.

Troquei o interruptor no teto. Nenhuma mudança. Substituo o cabo que conecta o novo computador ao interruptor do teto. Nenhuma mudança. Instalei uma placa de rede PCI com um chip Intel GBit (82541PI) e usei isso em vez do Realtek RTL8111 / 8168B incorporado. Nenhuma mudança. Sim, tenho certeza de que pluguei o cabo na porta correta, porque agora obtenho um endereço IP diferente do meu servidor DHCP.

A mesma placa de rede funcionou perfeitamente no meu computador antigo usando o mesmo sistema operacional (openSUSE 12.1).

ifconfig diz:

      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:15679 errors:0 dropped:0 overruns:0 frame:0
      TX packets:13077 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 Sendewarteschlangenlänge:1000 

ethtool diz:

    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair

O que poderia estar causando esse comportamento?

[EDIT] Encontrei algo interessante:

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:        178          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
  8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
 12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 16:    3302428          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1
 17:        184          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   snd_hda_intel
 23:      16721          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb2

Como você pode ver, interrupção 16 serve uma porta USB, a placa gráfica, "mei" (?) E eth1.

Eu acho que isso explicaria por que é lento. Como atribuo interrupções em 2012?

Aaron Digulla
fonte
Quando você corre ping, todos os pings voltam? Ou seja, sua instalação perde pings ou pacotes?
22612 Bruce Ediger
Tenho 0% de perda de pacotes. É apenas lento. Talvez um IRQ ruim tenha sido atribuído à placa de rede?
Aaron Digulla
quando você obtém altos tempos de ping, monitorou a utilização da CPU nos dois lados para confirmar que de alguma forma não está muito ocupado e com atrasos no agendador?
Mike Pennington
2
Você pode tentar mover os computadores um para o outro e conectá-los usando um cabo cruzado curto. Isso deve descartar efeitos devido a interruptores ruins, cabos longos, interferência elétrica ao longo do caminho e assim por diante. Sim, eu sei, o outro computador funciona bem nessa distância, mas esse pode ser o caso de ser mais tolerante a sinais ruidosos ou similares.
MvG 23/07
1
No meu caso, era um roteador com defeito, você pode descobrir como nesta pergunta .
Alberto Salvia Novella

Respostas:

5

Minha placa principal é uma ASUS P8Z77-M. A versão do BIOS era 0802. Este BIOS possui um erro: Atribui o mesmo IRQ (16) a todos os dispositivos de alto rendimento que podem causar todos os tipos de problemas (como congelar a área de trabalho ao copiar arquivos para um dispositivo USB ).

A atualização para a versão 1206 melhorou a situação. A placa de rede agora obtém seu próprio IRQ e os tempos de ping agora estão onde deveriam estar:

64 bytes from ds.digulla (192.168.0.3): icmp_seq=1 ttl=64 time=0.197 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=2 ttl=64 time=0.252 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=3 ttl=64 time=0.200 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=4 ttl=64 time=0.239 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=5 ttl=64 time=0.215 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=6 ttl=64 time=0.204 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=7 ttl=64 time=0.244 ms
64 bytes from ds.digulla (192.168.0.3): icmp_seq=8 ttl=64 time=0.190 ms
^C
--- ds.digulla ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7001ms
rtt min/avg/max/mdev = 0.190/0.217/0.252/0.027 ms
Aaron Digulla
fonte