¿Por qué el ping es tan lento?

9

Mi configuración:

Servidor en la bodega + conmutador GBit. Cable largo hasta el techo. Interruptor GBit. Tengo tres computadoras en el techo. Uno tiene solo 100 MBit de ethernet, una computadora portátil con GBit y una computadora nueva.

Tiempos de ping desde la vieja computadora de 100 MB: 0.5ms en promedio Tiempos de ping desde la computadora portátil: 0.4ms en promedio Tiempos de ping desde mi nueva computadora: 5ms o 30ms o 200ms en promedio, pero a menudo veo tiempos de ping de hasta 980ms. En general, el rendimiento es muy inestable.

Reemplacé el interruptor en el techo. Ningún cambio. Reemplazo el cable que conecta la nueva computadora al interruptor del techo. Ningún cambio. Instalé una tarjeta de red PCI con un chip Intel GBit (82541PI) y la usé en lugar de la Realtek RTL8111 / 8168B incorporada. Ningún cambio. Sí, estoy seguro de que enchufé el cable en el puerto correcto porque ahora obtengo una dirección IP diferente de mi servidor DHCP.

La misma tarjeta de red funcionó perfectamente en mi vieja computadora usando el mismo sistema operativo (openSUSE 12.1).

ifconfig dice:

      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 dice:

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

¿Qué podría estar causando este comportamiento?

[EDITAR] Encontré algo interesante:

# 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 se puede ver, interrupción 16 sirve un puerto USB, la tarjeta gráfica, "mei" (?) Y eth1.

Supongo que eso explicaría por qué es lento. ¿Cómo asigno interrupciones en 2012?

Aaron Digulla
fuente
Cuando corres, ping¿vuelven todos los pings? Es decir, ¿tu configuración pierde pings o paquetes?
Bruce Ediger
Tengo 0% de pérdida de paquetes. Solo es lento. ¿Tal vez se asignó un IRQ incorrecto a la tarjeta de red?
Aaron Digulla
cuando está obteniendo altos tiempos de ping, ¿ha monitoreado la utilización de la CPU en ambos lados para validar que de alguna manera no está muy ocupado y obtiene retrasos en el programador?
Mike Pennington
2
Puede intentar mover las computadoras una al lado de la otra y conectarlas con un cable cruzado corto. Eso debería descartar los efectos debidos a interruptores defectuosos, cables largos, interferencias eléctricas en el camino, etc. Sí, lo sé, la otra computadora funciona bien a esa distancia, pero podría ser un caso de que sea más tolerante a las señales ruidosas o similares.
MvG
1
En mi caso, fue un enrutador defectuoso, puede resolverlo como en esta pregunta .
Alberto Salvia Novella

Respuestas:

5

Mi placa base es una ASUS P8Z77-M. La versión del BIOS era 0802. Este BIOS tiene un error: asigna la misma IRQ (16) a todos los dispositivos de alto rendimiento que pueden causar todo tipo de problemas (como congelar el escritorio cuando copia archivos a un dispositivo USB ).

La actualización a la versión 1206 mejoró la situación. La tarjeta de red ahora tiene su propia IRQ y los tiempos de ping ahora están donde deberían 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
fuente