Feststellen, warum Dateiübertragungen so langsam sind

7

Ich versuche, große Dateien (jeweils 3+ Gigs) über das LAN zu übertragen. Meine Verbindung ist 100 Megabit zur Box mit einem Gigabit-Backbone. Beim Übertragen von Dateien zwischen Servern und von einem Server auf meinen lokalen Computer liegt die Übertragungsgeschwindigkeit jedoch zwischen 11 und 13 Megabit pro Sekunde.

Große Downloads aus dem Internet gehen jedoch erheblich schneller.

Ich habe dieses Problem bei meinen Mitarbeitern der Netzwerkinfrastruktur angesprochen, aber sie bestehen darauf, dass bei der Netzwerkkonfiguration alles in Ordnung ist.

Gibt es Tools, die ich auf meinem Computer oder den Servern installieren kann, um zu versuchen, die Quelle der Verlangsamung zu isolieren?

Ryan Michela
quelle
Auf welchem ​​Betriebssystem bist du?
MikeyB
Windows Server 2003/8
Ryan Michela
Wenn Sie eine Lösung für Ihr Problem finden könnten, würden Sie bitte Ihre Frage mit einer Erklärung bearbeiten (oder einen Kommentar zur richtigen Lösung hinterlassen).
Dave Cheney

Antworten:

8

Überprüfen Sie zunächst die Schnittstellenzähler auf jedem Server. Es sollten 0 oder nahezu 0 Fehler gemeldet werden.

Überprüfen Sie zweitens den Duplex beider Server. Wenn Sie 100 MBit und GbE mischen, liegt möglicherweise eine Duplex-Fehlanpassung vor. Stellen Sie sicher, dass beide Seiten auf Auto / Auto eingestellt sind, oder stellen Sie die Geschwindigkeit und den Duplex an allen Schnittstellen manuell ein.

Drittens, welche Art von Streit gibt es auf dem GbE-Backbone. Können Sie bestätigen, dass genügend Headroom für Ihre Übertragung vorhanden ist?

Ist Ihr Senderserver in der Lage, schnell genug zu senden? Wie aus den Kommentaren unten hervorgeht, sind Sie durch die E / A-Bandbreite der Senderlaufwerke oder durch die CPU (wenn Sie scp oder ähnliches verwenden) begrenzt?

Btw, 11 bis 13 Mega - Bytes pro Sekunde ist der theoretische max für 100Mbit, sind Sie sicher , dass das Werkzeug , das Sie messen verwenden, um die richtigen Einheiten Berichterstattung?

Dave Cheney
quelle
Obwohl ich Ihnen kein Tool nennen kann, das Ihnen lediglich die verschiedenen Durchsätze zeigt, muss ich dem, was Dave Cheney bereits gesagt hat, etwas hinzufügen. Ist Ihre "sendende" Festplatte schnell genug? Zerreißt die SSH-Komprimierung / Verschlüsselung möglicherweise die CPU so sehr, dass für den NIC / RAID-Treiber kein Spielraum mehr besteht? Ich hatte es einmal, dass scp unglaublich langsam war, also habe ich gleichzeitig ein lighttpd eingerichtet, was sich als weitaus schneller herausstellte.
Imbus
Guter Punkt, daran habe ich nicht gedacht. Sie sagen, wenn Sie von Server A zu Server B senden, erhalten Sie 11-13 MBit, aber wenn Sie von einem Remote-Server empfangen, können Sie höhere Bitraten erzielen. Ich habe meine Antwort mit einem einfachen Test der Io-Bandbreite aktualisiert
Dave Cheney
5

Schauen Sie sich das folgende Verfahren an, das ich verwende, um das Problem einzugrenzen.


Wenn ich den Netzwerkdurchsatz teste, entfernen Sie am besten so viele Variablen wie möglich, z. B. Festplatten-E / A oder CPU-Einschränkungen. Hier ist das von mir verwendete Verfahren, das das typische Maximum veranschaulichen kann, das Sie jemals in Ihrem Netzwerk sehen werden.

Werkzeuge:

Beide Dienstprogramme sollten auf den meisten modernen * nix-Systemen verfügbar sein, entweder vorinstalliert, über Pakete oder aus dem Quellcode kompilierbar.

Verfahren:

  1. Führen Sie den folgenden Befehl auf einem Computer aus, um den UDP-Listener einzurichten. (Die Verwendung von UDP führt zu höheren Leistungszahlen, da kein TCP-Overhead für die Übertragung vorhanden ist.)

    nc -ulp 5000 > /dev/null

  2. Führen Sie auf dem anderen Computer den folgenden Befehl aus, indem Sie die IP-Adresse des Listeners ersetzen, um einen Strom von Nullen über das Netzwerk an den nc-Listener zu senden. Das Dienstprogramm pv zeigt die aktuelle Leistung an, die vom Empfänger verfolgt wird.

    pv < /dev/zero | nc -u listener-ip-address 5000

Anmerkungen:

  • Der theoretische max auf eine Verbindung Gig Ethernet ist 119MB / s (Hinweis, M B , M nicht b )
  • TCP kann auch getestet werden, indem das -u in beiden nc-Befehlen entfernt wird
  • In realen Anwendungen erreichen Sie niemals die in der PV-Ausgabe angegebenen Leistungszahlen.

Diese Methode liefert vorhersehbare Ergebnisse in einem gut konzipierten Netzwerk mit ordnungsgemäß funktionierenden Geräten. Aus diesem Grund ist es ein gutes Werkzeug, um herauszufinden, ob das Netzwerk selbst oder die Netzwerkausrüstung zur wahrgenommenen "Langsamkeit" beiträgt.

Dave K.
quelle
1

Sind Sie unter Windows Vista? Beachten Sie, dass Vista die LAN-Übertragung jedes Mal drosselt, wenn Sie eine Multimedia-App geöffnet haben (einschließlich eines Webbrowsers mit Flash).

Ich hatte dieses Problem mit Übertragungen, die auf 10 MB / s begrenzt waren, wenn sie auf 30-40 MB / s hätten übertragen sollen.

Sie können die Drosselung in einem hier beschriebenen Registrierungsschlüssel deaktivieren:

http://www.anandtech.com/systems/showdoc.aspx?i=3233&p=2

Matias Nino
quelle
0

Berücksichtigen Sie auch die Protokollunterschiede zwischen den beiden Szenarien. "Große Downloads aus dem Internet" klingt nach HTTP oder FTP über TCP / IP. Verwenden Sie im LAN etwas anderes? Vielleicht eine nicht übereinstimmende Reihe von SMB-Implementierungen oder Apple Filesharing? Ich erwähne es nur, weil ich gesehen habe, dass sich der SMB-Verkehr zwischen Windows- und UNIX / Linux-Systemen auf eine wirklich vernünftige Art und Weise verhält.

Versuchen Sie, mit verschiedenen Übertragungsmechanismen zu experimentieren, und prüfen Sie, ob dies zu unterschiedlichen Ergebnissen führt.

Adam D'Amico
quelle
0

Sprechen die Server beim Übertragen von Dateien zwischen Servern direkt?

Oder befinden Sie sich in Windows und haben jedem Server Laufwerke zugeordnet, und Sie ziehen Dateien über diese?

In diesem zweiten Szenario läuft alles über Ihren Computer, sodass die schnellste Übertragung bei 11 MBit / s liegt.

Wenn Sie sich auf einem * nix-System befinden, verwenden Sie ttcp, um festzustellen, ob Ihre TCP-Verbindung der Engpass ist.

MikeyB
quelle
0

Wenn Sie Windows verwenden, empfehle ich dringend, das kostenlose Dienstprogramm RichCopy zu verwenden . Es ist Multithread-fähig und kann Dateikopiervorgänge anhalten und fortsetzen. Ich hatte sehr viel Glück damit, Dateien zwischen Servern zu übertragen.

notandy
quelle
0

Es ist ein wirklich altes Tool, aber ich habe in der Vergangenheit gute Erfolge mit Netperf erzielt . Es sollte Ihnen eine erste Vorstellung von der Bandbreite zwischen zwei Geräten geben.

Aaron
quelle
0

Blöder Vorschlag, aber ist es möglich, dass die Übertragung nicht über das LAN erfolgt, sondern tatsächlich über das Internet? Wie verbinden Sie sich zwischen den Maschinen? Ich frage, weil Ihre Symptome ähnlich klingen wie in einer kürzlich erschienenen Folge von DotNetRocks. Lesen Sie das Transkript der Lösung unter:

Carl Franklin: Ja. The Brain Buster, wir wollten, dass die Leute ihre Vorschläge oder die Antworten, die sie denken, an das senden, was passiert ist.

Rob Rolnick
quelle