Asymmetrisches Gigabit LAN – Hilfe!

Achtung ziemlich technisches Thema, aber ich hoffe, dass jemand unter meinen Lesern dabei ist, der oder die das Problem vielleicht kennen. Das Problem:

Letzte Woche habe ich das Heimnetzwerk mit Gigabit LAN ausgerüstet, d.h. eigentlich nur einen passenden Switch dazwischen gehängt, weil die Netzwerkkarten das sowieso schon konnten. Leider musste ich aber feststellen, dass das Netzwerk zwar schneller geworden ist, aber die Übertragungsraten irgendwie asymmetrisch sind. Und zwar bekomme ich bei einer Datenübertragung mittels Samba (das eine ist eine Linuxkiste und auf der anderen Maschine läuft Windows XP) in die eine Richtung im Mittel 30 Megabytes/s, aber in die andere Richtung nur 10 Megabytes/s. Das bestätigt sich auch bei einem Test mit NetIO. Die reine Übertragungsgeschwindigkeit ist mit Linux als Sender nur bei 17 MB/s und mit Windows als Sender bei knapp 70 MB/s.

Woran kann das liegen? Kabel und Switch schließe ich jetzt einfach mal aus, weil dann würde es die „schnelle Richtung“ auch nicht geben. Beim Senden von Windows aus sind die CPUs beider System komplett ausgelastet, beim Senden von Linux aus liegt die Auslastung jeweils bei ca 20-30%. Beide Systeme verwenden zwar unterschiedliche Netzwerkkarten (Linux: Netgear GA311, Windows: Nvidia nForce Chipsatz), aber auch mit der gleichen Karte (Netgear) in beiden PCs sind die Übertragungsraten asymmetrisch (dann 17 MB/s und 50 MB/s). Wenn ich „Jumbo Frames“ einschalte (MTU=4500), dann sind die Raten mit NetIO bei 19 MB/s vs. 86 MB/s

Was kann man bei Linux noch verändern, das die Sendegeschwindigkeit verbessern kann?

Hilfe!

Lösung:
Es war ein Treiberproblem. Hab mir von Realtek den entsprechenden Treiber für den R8169 Chip geladen, kompiliert und installiert und schwupps kann auch die Linuxkiste die Leitung sättigen. Scheinbar wird bei OpenSuse 10.2 bzw. Kernel 2.6.18 ein veralteter Treiber mitgeliefert. Jetzt geht’s auf jeden Fall!

13 Antworten auf &‌#8222;Asymmetrisches Gigabit LAN – Hilfe!&‌#8220;

  1. Hallo. Habe leider noch nie so ein Setup getestet – bin heutzutage nur mehr Hobby-Netzwerker. Schau mal ob Du irgendwelche Fehler auf den LAN-Schnittstellen der beiden PCs entdecken kannst, oder der Switch Dir irgendetwas anzeigt. CRC-, Frame-, Jitter Fehler etc. Überprüfe deine Duplex Einstellungen, obwohl bei Gigabit-Ethernet weiss ich nicht ob man da viel einstellen kann. Auf alle Fälle die letzten Windows Treiber verwenden – Wenn Du JUMBO-Frames verwendest muss das sowohl der Switch und die beiden Netzwerkkarten-Treiber unterstützen. Schau ausserdem ob du nicht irgendwo IEEE_802.1p verwendest und deaktivere all diese zusätzlichen Goodies, die nur Verwirrung stiften. Ausserdem kann es sehr wohl an den Kabeln liegen. Was für Kabel verwendest Du? CAT5+ CAT6? Gigabit Ethernet über Kupfer braucht einen gewissen Frequenzbereicht, daher richtige Kabelverwenden. Das wäre es mal für das Erste. ;-)

  2. Was sagen die Leitungen denn, wenn du das ganze über bspw. FTP versuchst? Denk dran, dass Samba auch nicht das gelbe vom Ei ist :P

  3. Nicht böse sein, aber das sind genau dieselben Antworten bzw. Fragen, die man in x-beliebigen Dödelforen bekommt. Ich hatte irgendwie gehofft jemand weiß spontan eine Lösung und bombardiert mich nicht mit Fragen ;-)

    @moi:
    – keine Fehler, keine Kollisionen. Zumindest werden keine angezeigt.
    – beide Netzwerkkarten sind auf Full Duplex/1000 Mbit gestellt
    – Auf der Windowsseite scheint das Senden einwandfrei zu funktionieren, der Treiber ist aktuell
    – sowohl der Switch als auch beide Netzwerkkarten unterstützen Jumbo-Frames, aber im Text steht ja bereits warum es das nicht sein kann
    – keine Goodies
    – wie soll es an den Kabeln liegen, wenn es in die eine Richtung funktioniert, nicht aber in die andere? Ich verwende keine separaten Kabel für beide Wege ;-)

    @Henubis:
    – die Werte von Samba habe ich nur als Einleitung im Artikel. Alle anderen Werte beziehen sich auf den reinen Datendurchsatz der Schnittstelle gemessen mit NetIO. Aber der Vollständigkeit halber: auch FTP zeigt das gleiche Verhalten. Aber lassen wir mal die Andwendungssoftware weg, es geht um den reinen Durchsatz.

    Wenn ich noch einen dritten Rechner mit Gigabit hätte könnte ich ja noch etwas mehr testen, aber so muss ich annehmen, dass irgendwas nicht mit den Einstellungen auf dem Linuxsystem stimmt. Es gibt ein paar Einstellungen namens „offload“, die man getrennt für rx und tx mit „ethtool“ einstellen kann, aber auch das ist nicht für die asymmetrischen Übertragungsraten verantwortlich …

  4. Nachtrag:
    Ich habe auf einer Webseite gelesen, dass Windows bei TCP/IP die „ACKs“ nicht schnell genug sendet. Das wäre eine plausible Erklärung, aber dann müsste es doch überall im Netz nur so von Lösungen wimmeln, oder nicht? Schließlich müssten dann ja schon tausende vor mir auf dieses Problem gestoßen sein …

  5. Schon mal in der knowledge base von Microsoft geschaut? Aus der Erfahrung mit einem Kunden von mir könnt ich mir vorstellen, dass das bei Win XP „absichtlich“ so gemacht wird – warum auch immer…

  6. Das Windows generell nicht als Gbit Empfänger geeignet ist kann sicher nicht der Grund sein. Ich habe zwar leider keine Linux Kiste mit Gbit im LAN aber ich komme zumindest zwischen zwei Windows Rechnern über Netzlaufwerke auf ~60 MB/s in beide Richtungen und ohne irgendwelche Jumbo-Frame Einstellungen. Ein Rechner hat einen 3com und der andere einen Intel Onboard Chip.
    Hatte in meinem alten Fileserver jedoch eine Realtek Gbit onboard und die war leider auch nicht viel schneller als 20 Mb/s. Habe teilweise das Gefühl dass die billigen NICs den Datendurchsatz nicht wirklich hinbekommen. Hilft dir vielleicht jetzt nicht weiter aber zumindest lässt sich windows ( XP und 2003 Server ) als zu langsamer Empfänger ausschließen.

  7. Hmm, wie schon gesagt, ich hab’s auch mit zwei Realtek-Karten ausprobiert. Das war zwar langsamer, aber nicht nur 20 MB/s in der schnellen Richtung, sondern 50 MB/s … auch damit wäre ich zufrieden :-)

    Ich habe mir den Netzwerkverkehr auch mal mit Ethereal angeschaut. Wenn Windows sendet folgen die ACKs der Linuxkiste nicht direkt auf die jeweiligen Frames, wenn Linux sendet kommen die ACKs von der Windowsseite allerdings schön regelmäßig direkt nach dem zugehörigen Frame. Vielleicht „wartet“ Linux hier auf ACKs bevor es weitere Daten über TCP/IP sendet und Windows bläst einfach die Leitung voll?

  8. Naja, wenn Du uns nicht alle Informationen zur Verfügung stellst mußt Du mit den Dödelfragen wohl leben. ;-) Du könntest am TCP Window Sizing herumdrehen. Frag mal Google. Ich würde trotzdem die Kabel inspizieren – falls sie nur CAT5 zertifiziert sind ist es sicherlich wert sich ein Paar CAT6 oder zumindest CAT5E Kabel zu kaufen – paar Meter kosten nicht die Welt. Sonst hätte ich vielleicht MTU vermutet, aber da hast du ja schon herumgedreht.

  9. Unterscheiden sich die Kategorien der Kabel nicht nur durch die Isolierung der Aderpaare? Bei 5e und 6 ist nochmal ein Drahtgeflecht außen herum und bei bei 7 ist jedes Adernpaar getrennt isoliert. Auf kurzen Entfernungen dürfte das sicherlich wenig bringen und erklärt ganz bestimmt nicht diese ungleichen Übertragungsraten …

Kommentare sind geschlossen.