Por que o ping é tão lento?

8

Minha configuração:

Servidor no interruptor da adega + GBit. Longo cabo para o telhado. Comutador GBit. Eu tenho três computadores no telhado. Um tem apenas 100MB de ethernet, um laptop com GBit e um novo computador.

Tempo de ping do antigo computador de 100MBit: 0,5ms em média Tempo 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 muitas vezes vejo tempos de ping até 980ms. Em geral, a taxa de transferência é muito instável.

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

A mesma placa de rede funcionou perfeitamente no meu antigo computador 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, a interrupção 16 serve uma porta USB, a placa gráfica, "mei" (?) e eth1 .

Eu acho que isso explicaria porque é lento. Como faço para atribuir interrupções em 2012?

    
por Aaron Digulla 22.07.2012 / 12:02

1 resposta

4

Minha placa-mãe é uma ASUS P8Z77-M. A versão do BIOS era 0802. Este bios tem um bug: Ele atribui o mesmo IRQ (16) a todos os dispositivos de alto rendimento que podem causar todos os tipos de problemas (como congelamento da área de trabalho quando você copia arquivos para um dispositivo USB ).

A atualização para a versão 1206 melhorou a situação. A placa de rede agora recebe 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
    
por 24.07.2012 / 21:40