Warum ist diese Netzwerkverbindung so langsam?

11

Ich habe einige Probleme mit der Geschwindigkeit der Netzwerkleistung auf einem Linux-Server mit Ubuntu 9.10. Die Übertragungsgeschwindigkeit für alle Arten von Verkehr liegt bei einer kabelgebundenen Ethernet-Verbindung mit 1000 MBit / s bei etwa 1,5 MB / s. Dieser Server hat in der jüngeren Vergangenheit 55 MB / s gegenüber Samba erreicht. Ich habe die Hardware- oder Netzwerkeinrichtung nicht geändert. Ich führe regelmäßig Updates durch und das neueste und beste aus Ubuntus Repositories läuft auf diesem Computer.

Hardware-Setup

Desktop Windows PC - 1000 Switch - 1000 Switch - Linux Server

Alle Switches sind Netgear und alle zeigen grünes Licht für ihre Verbindungen, was bedeutet, dass die Verbindung 1000 MBit / s beträgt. Die Lichter leuchten gelb, wenn die Verbindung nur 100 MBit / s beträgt. Sonstige diagnostische Informationen:

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

Der Server glaubt, eine 1000-Mbit / s-Verbindung zu haben. Ich habe die Übertragungsgeschwindigkeit durch Kopieren von Dateien mit Samba getestet. Ich habe auch netcat (nc target 10000 <aBigFile) auf dem Server verwendet, um auf Windows zu übertragen (nc -l -p 10000), und habe ähnliche Leistungsschwächen festgestellt.

Ich habe die Geschwindigkeit der Festplatten mit hdparm getestet und Folgendes erhalten:

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

Das Lesen derselben Datei für die Übertragung mit DD ergab Folgendes:

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

Ich bin ratlos. Was könnte die schlechte Netzwerkleistung verursachen, die 2 Größenordnungen niedriger ist als die Leistung des Netzwerks?

Paul Keeble
quelle
Serverfault ist wahrscheinlich der bessere Ort, um solche Fragen zu stellen.
Maciej Piechotka
In dieser ServerFault- Frage finden Sie allgemeine Techniken zur Fehlerbehebung bei einer langsamen Netzwerkverbindung.
Wenn sich nichts geändert hat, geben Sie dem Verschleiß die Schuld (Kabel).
Mel

Antworten:

6

Einige Dinge, die Sie überprüfen sollten:

  1. Duplex - Wenn eine Seite denkt, dass die Verbindung Vollduplex ist und die andere Seite denkt, dass die Verbindung Halbduplex ist, erwarten Sie Schlechtigkeit.
  2. Schalter defekt? Umgehe es / sie.
  3. Jumbo-Rahmen. Die 9000-Byte-MTU verringert den Overhead, was den Durchsatz erhöhen sollte (ein wenig Latenz). Es hört sich so an, als ob Ihr Problem so schlimm ist, dass dies jedoch nicht hilft.
  4. TCP-Funktionen: ECN, SACK, Überlastungskontrolle alg
  5. TCP Sende- / Empfangsfenstergrößen ( Details für Linux )

netperf eignet sich hervorragend zur Fehlerbehebung bei der Netzwerkleistung. Aber Netcat ist zur Not nicht schlecht.

Brian Cain
quelle
6

In meiner beruflichen Erfahrung hatte ich Probleme, mit Samba unter GNU / Linux eine solide Netzwerkleistung zu erzielen. Sie haben erwähnt, dass Sie damit Geschwindigkeiten von 55 MBit / s erreicht haben, was meiner Meinung nach definitiv etwas anderes im Spiel ist.

Haben Sie jedoch NFS, FTP und SCP ausprobiert? Sind die Bandbreitenprobleme in den verschiedenen Protokollen konsistent? Wenn ja, wird es wahrscheinlich auf die physische Verbindung eingegrenzt. Wenn Sie inkonsistente Ergebnisse erhalten, liegt wahrscheinlich ein Softwareproblem vor.

Verwenden Sie neben dem Testen der anderen Protokolle auch Verschlüsselung für die Übertragung? Zum Beispiel ist die Verwendung rsync -zfür die Aktivierung der Komprimierung sehr hilfreich, verursacht jedoch CPU-Kosten, die die Gesamtgeschwindigkeit der Übertragung erheblich beeinträchtigen. Wenn Sie SSHmit verwenden rsync, haben Sie zusätzlich zur Komprimierung eine Verschlüsselung, und Ihre CPU ist etwas belastet, was zu erheblichen Geschwindigkeitseinbußen führt.

Aaron Toponce
quelle
2
  1. Versuchen Sie netstat -i, nach RX / TX-Fehlern zu suchen.
  2. Versuchen Sie netstat -s, nach TCP-Problemen zu suchen - vergleichen Sie die Werte vor und nach dem Kopieren der Datei und suchen Sie nach großen Spitzen beim Zurücksetzen oder erneuten Übertragen.
Rafael Ferreira
quelle
Leider gibt es nach 100 MB überhaupt keine TX / RX-Fehler mehr und die Anzahl der Zurücksetzungen betrug vom Beginn bis zum Ende des Tests konstant 4
Paul Keeble,
0

Sie können die Überlastung Ihres Netzwerks überprüfen. Vielleicht verbrauchen einige andere Geräte Ihre gesamte Bandbreite?

Darüber hinaus stimmt möglicherweise etwas mit Ihrer Netzwerkschnittstelle und / oder ihrem Treiber nicht. Ziemlich komisch.

pmalmsten
quelle
Zum Zeitpunkt des Tests waren dies die einzigen zwei Geräte im Netzwerk, nichts anderes war eingeschaltet.
Paul Keeble
0

Um die meisten Zweifel daran zu beseitigen, dass es sich tatsächlich um ein Betriebssystem- / Treiber- / Kartenproblem handelt, verbinden Sie die Computer nach Möglichkeit mit einem Crossover-Kabel. Dadurch werden der Switch und andere mögliche Netzwerkprobleme aus Ihrer Gleichung entfernt.

Stephen Jazdzewski
quelle