Perché il ping è così lento?


9

La mia configurazione:

Server in cantina + interruttore GBit. Cavo lungo fino al tetto. Interruttore GBit. Ho tre computer sul tetto. Uno ha solo Ethernet da 100 MB, un laptop con GBit e un nuovo computer.

Tempi di ping dal vecchio computer da 100 MB: 0,5 ms in media Tempi di ping dal computer portatile: 0,4 ms in media Tempi di ping dal mio nuovo computer: 5 ms o 30 ms o 200 ms in media, ma vedo spesso tempi di ping fino a 980 ms. In generale, il throughput è molto instabile.

Ho sostituito l'interruttore sul tetto. Nessun cambiamento. Sostituisco il cavo che collega il nuovo computer all'interruttore sul tetto. Nessun cambiamento. Ho installato una scheda di rete PCI con un chip Intel GBit (82541PI) e l'ho usata al posto del Realtek RTL8111 / 8168B integrato. Nessun cambiamento. Sì, sono sicuro di aver inserito il cavo nella porta corretta perché ora ho un indirizzo IP diverso dal mio server DHCP.

La stessa scheda di rete ha funzionato perfettamente sul mio vecchio computer utilizzando lo stesso 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

Cosa potrebbe causare questo comportamento?

[EDIT] Ho trovato qualcosa di 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

Come si può vedere, interrupt 16 serve una porta USB, la scheda grafica, "mei" (?) E eth1.

Immagino che spiegherebbe perché è lento. Come posso assegnare gli interrupt nel 2012?


Quando corri ping, tutti i ping tornano? Cioè, il tuo setup perde ping o pacchetti?
Bruce Ediger,

Ho una perdita di pacchetti pari allo 0%. È solo lento. Forse un cattivo IRQ è stato assegnato alla scheda di rete?
Aaron Digulla,

quando si ottengono tempi di ping elevati, è stato monitorato l'utilizzo della CPU su entrambi i lati per confermare che non si è in qualche modo molto occupati e si verificano ritardi nello scheduler?
Mike Pennington,

2
Potresti provare a spostare i computer uno accanto all'altro e collegarli usando un cavo crossover corto. Ciò dovrebbe escludere gli effetti dovuti a interruttori difettosi, cavi lunghi, interferenze elettriche lungo il percorso e così via. Sì, lo so, l'altro computer funziona bene su quella distanza, ma potrebbe essere un caso in cui è più tollerante ai segnali rumorosi o simili.
MvG,

1
Nel mio caso era un router difettoso, puoi capirlo come in questa domanda .
Alberto Salvia Novella,

Risposte:


5

La mia scheda madre è un ASUS P8Z77-M. La versione BIOS era 0802. Questo BIOS ha un bug: assegna lo stesso IRQ (16) a tutti i dispositivi ad alta velocità che possono causare tutti i tipi di problemi (come il blocco del desktop quando si copiano i file su un dispositivo USB ).

L'aggiornamento alla versione 1206 ha migliorato la situazione. La scheda di rete ora ottiene il proprio IRQ e i tempi di ping sono ora dove dovrebbero essere:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.