Warum bekomme ich in meinem 1000-Mbit / s-Netz nur 300-400 Mbit / s?

83999
davr

Mein Setup ist wie folgt:

Laptop <-> Router <-> Desktop

Sie alle unterstützen Gigabit-Ethernet. Ich verwende den 'iperf'-TCP / IP-Benchmark auf dem Laptop und dem Desktop, und ich habe noch nie einen Rohdurchsatz von mehr als 400 Mbit / s erreicht. Bei dem Laptop handelt es sich um einen Intel Core 2 Duo 2 GHz mit Windows XP, der Desktop um einen Intel Core 2 Quad 2,4 GHz, auf dem Windows 7 ausgeführt wird. Auf welche Dinge kann ich achten, um die Netzwerkgeschwindigkeit zwischen ihnen zu maximieren? Software-Einstellungen Wie kann ich feststellen, ob mein Kabel nicht den Spezifikationen entspricht? Wie können Sie feststellen, ob der Gigabit-Ethernet-Controller in einem der Geräte die Höchstgeschwindigkeit nicht erreichen kann?

17

9 Antworten auf die Frage

11
Ƭᴇcʜιᴇ007

1 Gbit / s ist das theoretische Maximum dieser Verbindung.

Viele Dinge können dies beeinflussen.

Erwarten Sie einen Leistungsausfall von Ihren integrierten NICs, da diese höchstwahrscheinlich (basierend auf den Gerätebeschreibungen "Laptop" und "Desktop") hostbasierte Adapter sein werden, die zur Verarbeitung des Netzwerkverkehrs auf der CPU basieren. Die Geschwindigkeit wird daher dadurch beeinflusst, dass die CPU andere Aufgaben ausführt (z. B. das Übertragen der Daten von den Festplatten auf das Netzwerk-Subsystem).

Abhängig davon, was der "Router" ist, versucht er möglicherweise, die Daten zu verarbeiten, wenn sie vom LAN-Port zum LAN-Port übertragen werden. Daher kann sich die Verarbeitungsgeschwindigkeit auch auf die Datenübertragungsgeschwindigkeit auswirken, unabhängig davon, wie schnell die "Ports" sind. sind.

Wenn ich Sie wäre, wäre mein nächster Test, ein CAT6-Crossover-Patchkabel mit "gerade langer genug" Verbindung herzustellen und das Notebook direkt mit dem PC zu verbinden (Sie können möglicherweise mit einem durchgehenden Kabel davonkommen, da viele NICs automatisch unterstützen.) (heutzutage)

Auf diese Weise können Sie (zumindest) den Router (und / oder die vorhandene Verdrahtung) ziemlich leicht als Engpass erkennen oder identifizieren.

Unter http://en.wikipedia.org/wiki/Ethernet_crossover_cable#Crossover_cable_pinouts finden Sie zwei mögliche Pinbelegungen für die Herstellung eines Gigabit-Crossover-Kabels. eleven81 vor 14 Jahren 0
Gute Infos sicher. In diesem Fall, wenn der Benutzer nicht an die Herstellung eines Kabels gewöhnt ist und das Ziel darin besteht, mögliche Verzögerungen zu beseitigen, ist es wahrscheinlich besser, ein werkseitig hergestelltes Kabel zu verwenden. Nichts schlimmer als eine lose Kräuselung. ;) Ƭᴇcʜιᴇ007 vor 14 Jahren 0
Nur zur Information, mit Gigabit-Ethernet, werden keine Crossover-Kabel mehr benötigt. Alle Gigabit-Ethernet-Controller müssen das Kabel "autosense" können, sodass Sie ein Standardkabel verwenden können, um Gigabit-Ethernet-Geräte miteinander zu verbinden. Ich versuche, meinen Laptop direkt an den Desktop anzuschließen und zu sehen, ob es einen Unterschied gibt. davr vor 14 Jahren 13
8
user23307

iperf verwendet standardmäßig eine ziemlich kleine Fenstergröße.

Vergrößern Sie das Fenster, oder führen Sie es im UDP-Modus aus. Dadurch wird eine 1-Gbit / s-Verbindung leicht gesättigt.

Dachte nicht daran, ich werde es versuchen. davr vor 14 Jahren 0
Sie werden es nicht mit Consumer-Hardware abdecken. Die CPU wird im Allgemeinen durch den PCI- oder PCI-Express-Bus eingeschränkt. Das heißt, die CPU kann Daten nicht schnell genug vom RAM auf die Netzwerkkarte verschieben. Serverqualität Hardware scheint besser zu sein. Ich weiß, ich bin Programmierer und habe genau das versucht. Annäherung, aber jetzt durch meine eigene Hardware begrenzt. Matt H vor 13 Jahren 1
arbeitete für mich, schlug eine Stunde lang mit dem Kopf und versuchte herauszufinden, warum Windows iperf mir 250 MBit / Sek. gibt und Ubuntu auf derselben Maschine bootet, gibt mir 925 MBit / Sek. stellt fest, dass iperf unter Windows standardmäßig auf 8k tcp-Fenstergröße und auf 88k-Fenstergröße unter Linux eingestellt ist. Omry vor 11 Jahren 1
@Omry, iperf on windows ist ein Hund aus verschiedenen Perspektiven. Ich habe meistens aufgegeben und iperf nur unter Linux laufen lassen Mike Pennington vor 10 Jahren 0
4
JMD

Jeff Atwood hat einige gute Analysen darüber, warum der reale Durchsatz eines Gigabit-Netzwerks in seinen Berechnungen näher bei 30 MB / s liegt. (großes "B", nicht kleines "B")

... Sie sollten definitiv nicht mit der perfekten Skalierung rechnen, die wir mit dem Wechsel von 10baseT zu 100baseT erreicht haben. Ohne größere Änderungen erhalten Sie nur einen Bruchteil der zehnfachen Bandbreite, die Sie erwarten könnten

Dieses "pcattcp" -Tool, das er benutzt, ist ein bisschen Mist. Mein 900-MHz-Linux-Netbook (das wahrscheinlich so schnell ist wie sein Computer 2005), macht 300 MB / s über Loopback. user23307 vor 14 Jahren 0
Ja, iperf bietet gegenüber Loopback eine deutlich bessere Leistung als pcattcp. Ich bleibe jetzt bei iperf, um zu testen, es sei denn, ich habe etwas anderes gehört, das besser ist. davr vor 14 Jahren 0
Ich bin auch schon höher als sein 240MBit, und dieser Artikel ist 5 Jahre alt, daher ist er nicht mehr so ​​relevant, denke ich, da die Technologie seitdem sehr weit fortgeschritten sein sollte. davr vor 14 Jahren 0
In Anbetracht der Tatsache, dass die Loopback-Schnittstelle virtuell ist (nichts wird sogar auf die Netzwerkkarte übertragen), erwarten Sie eine viel bessere Leistung (im Wesentlichen ist es dann ein Prozess, der verarbeitet wird und keine Festplatte berührt wird). Ich bekomme 8,09 Gbit / s (1035 MByte / s) über die Loopback-Schnittstelle. Matt H vor 13 Jahren 0
3
rob

Wenn alles Gigabit ist, können Sie versuchen, Jumbo-Frames zu aktivieren . Einer meiner Freunde tat dies mit seinem Heimcomputer und bemerkte eine enorme Durchsatzsteigerung. Es gibt jedoch einige Nachteile für Anwendungen mit geringer Latenz, wie VOIP, wie in dem Artikel erwähnt.

Die Erhöhung sollte für die meisten Anwendungen nicht so dramatisch sein. Dies bedeutet nur einen geringeren TCP- oder UDP-Protokollaufwand pro Paket. Für beste Ergebnisse sollte Ihr Switch / Router auch Jumbo-Frames unterstützen. Ich bezweifle, dass es sein würde. Matt H vor 13 Jahren 0
Für * beliebige * Ergebnisse müssen Ihre Switches Jumbo-Frames unterstützen. Es gibt keine Möglichkeit für ein reines L2-Gerät, einen ICMP-Fehler 'Packet too big' (Paket zu groß) zurückzusenden, damit Ihr Computer erkennt, dass er eine kleinere Paketgröße verwenden muss. cpt_fink vor 9 Jahren 0
1
Matt H

Haben Sie gesagt, Sie verwenden einen Router? ist das ein handelsüblicher Router (nicht umschalten)?

Ich würde sagen, das ist höchstwahrscheinlich dein Engpass. Um dies zu überprüfen, schließen Sie den Laptop direkt an den Desktop an. Richten Sie Ihren Laptop und Ihren Desktop so ein, dass eine statische IP-Adresse verwendet wird, z. B. 192.168.1.10 (Laptop), 192.168.1.11 (Desktop).

Dadurch sollte der Laptop direkt mit dem Desktop kommunizieren können. Führen Sie iperf zwischen ihnen aus und melden Sie das Ergebnis hier zurück.

Dies sollte funktionieren, da die meisten modernen Netzwerkkarten im Gegensatz zu den Tagen, als Sie früher ein Crossover-Kabel bauen mussten, Sende- / Empfangsleitungen automatisch erkennen können.

Wenn Sie eine deutliche Zunahme feststellen, ist Ihr Router der Täter. Einige haben Schalter auf der Rückseite, andere können tatsächlich zwischen Ports routen. Viele dieser Router sind fürchterlich. Wenn Sie feststellen, dass dies das Problem ist, würden Sie, wenn ich Sie wäre, entweder den Router aufrüsten (was für die Internetnutzung wahrscheinlich in Ordnung ist) oder sich einen GigE-Switch kaufen und diesen auf den Router-Switch kaskadieren. Stecken Sie Ihren Laptop und Ihren Desktop in den Switch. Auf diese Weise umgehen sie den Router, um miteinander zu kommunizieren.

Stellen Sie sicher, dass Sie Ihren Laptop und Ihren Desktop wieder auf DHCP umstellen, wenn Sie das Experiment abgeschlossen haben.

Um dir eine Idee zu geben, solltest du 650Mbit / s und darüber denken. iperf verwendet die Festplatte nur, wenn Sie es dazu sagen. Es geht also um Speicher oder um das Netzwerk wirklich zu testen.

Einer der anderen Engpässe ist, wie schnell Ihre CPU Daten vom Speicher auf die Netzwerkkarte übertragen kann. Netzwerke mit PCI Express scheinen besser zu funktionieren. Ich denke, Laptops sind heutzutage im Allgemeinen recht billig gebaut. Wenn Sie darüber nicht viel sehen, könnte dies der andere Engpass sein.

Consumer-Switches können oft nur 1 GB zwischen zwei Ports umschalten, während verwaltete High-End-Switches an allen Ports gleichzeitig mit Kabelgeschwindigkeit schalten können. Das ist einer der Gründe, warum sie so viel mehr kosten.

1
Accends

Wir haben zahlreiche Tests durchgeführt und es ging auf das Betriebssystem zurück.

Wenn wir von Ubuntu 11.04 zu Ubuntu 11.04 wechseln (dies gilt auch für CentOS für Linux-Maschinen), beträgt der Geschwindigkeitsdurchsatz ~ 938-941 MBits / s konstant. Wenn wir von Windows 7 x64 SP1 Ultimate zu Ubuntu 11.04 wechseln, variiert es von ~ 440-475 MBits / s. Wenn wir von Windows 2008 R2SP1 x64 zu Ubuntu 11.04 wechseln, misst die Geschwindigkeit ~ 435-635 MBits / s.

Wie Sie sehen, nutzen Linux-basierte Maschinen die Gigabit-Links im Vergleich zu Windows vollständig. Wir untersuchen jetzt Einstellungen in Windows, die auf derselben Hardware den gleichen Durchsatz wie Linux ergeben würden. Festplattenbeschränkungen spielen keine Rolle, da sich dies im Speicher befindet. Für die Aufzeichnung hatten die Maschinen, die wir verwendeten, 7200 U / min-Laufwerke mit SATA 3.0. Sowohl Ubuntu 11.04 (oder Linux-Basis) als auch Windows übertrafen die theoretische Geschwindigkeit dieser SATA-Verbindungen.

Vielen Dank für die Informationen. Aktualisieren Sie Ihre Antwort, wenn Sie Einstellungen finden, die die Geschwindigkeit unter Windows beeinflussen davr vor 12 Jahren 0
Daher frage ich mich, ob iperf nicht der einzige Teil von Windows ist, der standardmäßig eine kleinere Paketgröße als Linux hat (siehe http://superuser.com/a/95587/16966) matt wilkie vor 9 Jahren 0
0
Marcin

Übertragungsgeschwindigkeiten sind nur so gut wie das schwächste Glied in der Kette. Es kann nicht die Netzwerkgeschwindigkeit sein, sondern die Schreib- / Lesegeschwindigkeit Ihrer Festplatten.

Sie können die RamDisk- Software herunterladen und auf beiden Computern eine RamDisk erstellen. Legen Sie eine anständige Größe in die Datei und führen Sie eine Übertragung über das Netzwerk zwischen den RamDisks durch. Dies sollte Ihnen die tatsächliche Geschwindigkeit Ihres Netzwerks zeigen, die nicht durch Ihre Festplattengeschwindigkeiten behindert wird.

Deswegen habe ich 'iperf' erwähnt, aber ich denke, dass es nicht so üblich ist. Im Grunde testet es die Netzwerkgeschwindigkeit direkt, ohne auf die Festplatte zu lesen / schreiben, daher ist dies kein Engpass. Ich bin mir jedoch bewusst, dass HDD einen Engpass im realen Gebrauch darstellen kann. davr vor 14 Jahren 1
0
Andre Holzner

Keine direkte Antwort auf Ihre Frage, aber kürzlich haben wir das folgende Ergebnis mit iperfzwei Linux-Boxen (jeweils 8 Core und je 2,66 GHz) erzielt:

------------------------------------------------------------ Client connecting to 192.168.74.15, TCP port 5001 TCP window size: 192 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.74.25 port 54016 connected with 192.168.74.15 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec 

mit MTU = 1500 (dh es werden keine Jumbo-Frames verwendet). Das sollte Ihnen eine Vorstellung davon geben, welche Leistung grundsätzlich möglich ist.

Die Netzwerkkarten (lspci-Ausgabe) sind:

82571EB Gigabit Ethernet Controller 

auf beiden Seiten.

Möglicherweise möchten Sie die CPU-Auslastung auf dem Server und insbesondere auf der Clientseite überprüfen und feststellen, ob diese nahe bei 100% liegt. Auch wenn ich sagen muss, dass auf unserem System der belebteste Kern auf der Empfängerseite (Sender) zu 80% (83%) inaktiv ist, während die anderen 7 zu 100% im Leerlauf zu sein scheinen (geprüft mit mpstat).

Dies läuft iperfohne -uOption, dh es wird TCP verwendet.

Ich denke, Sie sollten> 500 oder 600 MBits / s auf 1 - 2 Jahre alte Desktop-Hardware bekommen. Matt H vor 13 Jahren 0
-4
TheEruditeTroglodyte

davr, Im Gegensatz zu Fibre-Channel- und ähnlichen Technologien, die ausgefeilte Bandbreitenzuweisungsverfahren verwenden, ist Ethernet ein Protokoll für "Listen and Squawk". Ethernet hört zuerst auf, ob gerade jemand sendet, wenn ja, dann abwarten. Das Problem ist, dass, wenn zwei oder mehr Teilnehmer, die senden möchten, gleichzeitig zuhören, sie auch gleichzeitig senden! Dies führt zu Kollisionen und erneuten Übertragungen. Mit ausgefallenen Schaltern wird vieles davon eliminiert, aber nicht alle.

Bei Ethernet sollten Sie mit einer Bandbreite von ca. 30-40 Prozent rechnen (Sieht so aus, als hätten Sie das ... Ich könnte mich auf die genaue Anzahl von Details stützen, viel hängt von der Schalterqualität usw. ab), bevor viele Kollisionen auftreten, die mit der Stofftechnologie zu tun haben etwas wie 80%. Ethernet ist billig, Fibre Channel nicht. . . Ich bin nicht sicher, was 4G Ethernet tut, um das zu umgehen. . . Es könnte eine mehr "Struktur" wie eine Netzwerktopologie haben, ähnlich wie bei Fibre Channel und Freunden. Dies ist eine Vereinfachung, ist aber im Wesentlichen richtig.

Ja, ich benutze keine "dumme" Nabe. Ich denke, dass die meisten Leute heutzutage intelligente Switches oder Router verwenden werden, die das direkte Verbinden von Geräten miteinander verbinden und Kollisionen vermeiden. Mein Test umfasst auch nur zwei Geräte, die an einen einzigen Router angeschlossen sind, sodass Kollisionen in meinem speziellen Fall kein Problem darstellen würden. davr vor 14 Jahren 2
davr - Entschuldigung, während ich für einen Moment den Anwalt der Teufel spiele. . . Was hindert Ihre beiden Gastgeber daran, gleichzeitig zu sprechen? Sie haben auch nicht erwähnt, welche Art von Daten übertragen werden. . . ist es fast ausschließlich TCP oder gibt es viele Datenströme (Audio, Video usw.)? Werden beide Computer gleichzeitig gestreamt, oder gibt es eine präzisere Client / Server-Beziehung? TheEruditeTroglodyte vor 14 Jahren 0
Ich verwende ein spezielles TCP / IP-Benchmarking-Programm, bei dem nur ein Computer sendet und der andere zuhört. Trotzdem ist Ethernet Vollduplex. Wenn Sie nur über zwei Maschinen verfügen, können beide gleichzeitig die volle Bandbreite senden und empfangen. davr vor 14 Jahren 2