Perché questa connessione di rete è così lenta?


11

Sto riscontrando alcuni problemi con la velocità delle prestazioni di rete su un server Linux che esegue Ubuntu 9.10. Le velocità di trasferimento su tutti i tipi di traffico sono di circa 1,5 MB / s su una connessione Ethernet cablata a 1000 mbit / s. Questo server ha raggiunto 55 MB / s su samba nel recente passato. Non ho modificato l'hardware o la configurazione di rete. Eseguo gli aggiornamenti su base regolare e l'ultimo e il più grande dei repository di Ubuntu è in esecuzione su questa macchina.

Installazione dell'hardware

PC desktop Windows - switch 1000 - switch 1000 - server Linux

Tutti gli switch sono netgear e mostrano tutti una luce verde per le loro connessioni, il che significa che la connessione è 1000mbit / s. Le luci sono gialle quando la connessione è a soli 100 mbit / s. Altre informazioni diagnostiche:

root@server:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:6e:3e:ae:36
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
          TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2109780 (2.1 MB)  TX bytes:111039729 (111.0 MB)
          Interrupt:22

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:23469 (23.4 KB)  TX bytes:23469 (23.4 KB)


root@server:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pg
        Wake-on: g
        Current message level: 0x00000037 (55)
        Link detected: yes

root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok

Il server pensa di avere una connessione a 1000 mbit / s. Ho testato la velocità di trasferimento copiando i file usando Samba. Ho anche usato netcat (nc target 10000 <aBigFile) sul server per trasferire a Windows (nc -l -p 10000) e ho visto livelli simili di scarse prestazioni.

Ho testato la velocità dei dischi rigidi usando hdparm e ho ottenuto:

root@server:~# hdparm -tT /dev/md0
/dev/md0:
 Timing cached reads:   1436 MB in  2.00 seconds = 718.01 MB/sec
 Timing buffered disk reads:  444 MB in  3.02 seconds = 147.24 MB/sec

La lettura dello stesso file per il trasferimento tramite DD ha prodotto quanto segue:

paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s

Sono perplesso. Cosa potrebbe causare le scarse prestazioni della rete che sono 2 ordini di grandezza inferiori a quelle di cui è capace la rete?


serverfault è probabilmente il posto migliore per porre tali domande.
Maciej Piechotka,

Prova questa domanda ServerFault per le tecniche generali utili per la risoluzione dei problemi di una connessione di rete lenta.

Se non è cambiato nulla, incolpare l'usura (cavi).
Mel

Risposte:


6

Alcune cose che dovresti considerare di controllare:

  1. Duplex: se un lato pensa che il collegamento sia full duplex e l'altro lato pensa che il collegamento sia half duplex, aspettarsi cattiveria.
  2. Interruttore difettoso? Bypassalo / loro.
  3. Cornici jumbo. L'MTU a 9000 byte riduce il sovraccarico, il che dovrebbe aumentare la produttività (perdendo un po 'di latenza). Sembra che il tuo problema sia così grave che questo non aiuterà, però.
  4. Funzionalità TCP: ECN, SACK, controllo di congestione alg
  5. Dimensioni della finestra di invio / ricezione TCP ( dettagli per Linux )

netperf è eccezionale nella risoluzione dei problemi relativi alle prestazioni della rete. Ma Netcat non è male in un pizzico.


6

Nella mia esperienza professionale, ho lottato per ottenere buone prestazioni di rete solide con Samba su GNU / Linux. Hai detto che hai raggiunto una velocità di 55 MBps, il che credo, quindi immagino che qualcos'altro sia sicuramente in gioco.

Tuttavia, hai provato NFS, FTP e SCP? I problemi di larghezza di banda sono coerenti tra i diversi protocolli? In tal caso, è probabilmente ridotto alla connessione fisica. Se si ottengono risultati incoerenti, è probabile che si tratti di un problema software.

Oltre a testare gli altri protocolli, stai usando la crittografia sul trasferimento? Ad esempio, l'utilizzo rsync -zè utile per consentire la compressione, ma ha un costo CPU, che influisce notevolmente sulla velocità complessiva del trasferimento. Se lo usi SSHcon rsync, hai la crittografia al di sopra della compressione e la tua CPU subirà un po 'di stress, causando gravi penalità di velocità.


2
  1. Prova a netstat -icercare errori rx / tx.
  2. Prova a netstat -scercare i problemi di tcp: confronta i valori prima e dopo la copia del file e cerca picchi di grandi dimensioni nei ripristini o ritrasmissioni.

Purtroppo non ci sono errori TX / RX dopo 100 MB e il numero di ripristini è stato costantemente 4 dall'inizio alla fine del test
Paul Keeble,

0

Potresti verificare la congestione della tua rete; forse alcuni altri dispositivi stanno consumando tutta la tua larghezza di banda?

Oltre a ciò, forse qualcosa non va nella tua interfaccia di rete e / o nel suo driver. Abbastanza strano.


Al momento del test questi erano gli unici due dispositivi sulla rete, nient'altro era acceso.
Paul Keeble,

0

Se possibile, per rimuovere la maggior parte dei dubbi sul fatto che si tratti effettivamente di un problema di sistema operativo / driver / scheda, collegare i computer insieme usando un cavo incrociato. Ciò rimuoverà lo switch e altri possibili problemi di rete dall'equazione.

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.