moebelwachs
Goto Top

TCP Durchsatz zu VM - Virtual Box

Hallo,

ganz was lustiges:
Ich wollt nen Datendurchsatz messen von einem PC (WIN7) zu einer XP - VM (Virtual Box) auf diesem Rechner.
Da kamen komische Werte raus.
Der Datendurchsatz vom Wirt zum Gast, also vom WIN7 PC zum virtuellen XP Client, sieht so aus: (gemessen mit netio )
6eab626a482f7de7de7923d8d6fec043

Die Netzwerkkarten laufen beide mit Gigabit, der vPC hat die Intel 1000MT Desktop bekommen.
Hat da wer eine Erklärung ? Ich hab zwar gelesen, daß der virtuelle Switch keine Jumboframes kann, na gut, aber die
kommen eh erst bei großen Files zum Tragen.

PS: Von nem anderen PC aus (Laptop mit GB-NIC) siehts auch nicht besser aus...

Grüße
Wolfgang

Content-ID: 185123

Url: https://administrator.de/forum/tcp-durchsatz-zu-vm-virtual-box-185123.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

aqui
aqui 17.05.2012 um 16:07:15 Uhr
Goto Top
Na ja, die Antwort kannst du dir ja eigentlich selber geben wenn man mal ein klein wenig nachdenkt was intern da passiert....
Wichtig wäre für uns noch gewesen WIE du die Netzwerk Schnittstelle in der VM betreibst ? Als Bridged, Host oder NAT Modus um das Ergebnis hier sinnvoll einschätzen zu können, aber egal....
Aussagen wie "Die Netzwerkkarten laufen beide mit Gigabit" ist natürlich Blödsinn denn die Netzwerkkarte der VM ist natürlich niemals eine physische Gigabit Karte sondern auch die wird dem Host natürlich nur durch ein Stück Software in der VM vorgegaukelt !
Der wahre Durchsatz hängt also von der VM ab bzw. dieser Software und damit von der Gesamtperformance des Systems und wieviel die NIC Emulations Software physisch durchschleifen kann ! Deshalb auch die Frage nach dem NIC Modus da das den Durchsatz erheblich beeinflusst.
Ein alter Pentium IV hat also logischerweise andere Werte für die "Gig Karte" als ein Quad Core.
Eine Software GiG NIC kann also niemals physisch das leisten was eine reale NIC kann, klar denn sie muss nebenbei ja auch noch die komplette VM, deren virtuelle Platte usw. oder worst Case mehrere VMs bedienen. Nur soviel um da mal etwas Klarheit in deine VM Denke zu bringen !
Die Werte oben spiegeln das auch ganz klar wieder !
Viele kleine Pakete fordern eine NIC Hardware und Software (Treiber) oder eine nur NIC Software (VM) erheblich mehr (Einpacken der Daten, mit IP Header versehen, Checksumme berechnen usw.) also große Pakete, die viel weniger solche Prozesse pro Zeiteinheit benötigen.
Auch das ist ein klassisches Bild vieler Treiber von Billigkarten ala Realtek wo diese Arbeit der Treiber und CPU selber machen muss und weniger die NIC Hardware (deshalb sind diese Karten und diese Chipsätze auf niederpreisigen Mainbords auch so schön billig... ). Dort sieht man wie bei dir das klassische Bild nämlich grottenschlechte Performance bei kleinen Paketen und einigermaßen annehmbare bei großen.
Bei vielen kleinen Paketen wird also die HW (und Software bei VM und Treibern) erheblich mehr gefordert, deshalb ist die Performance von billigen Netzwerk Chipsätzen beim Kopieren von Windows mit SMB/CIFS auch so schlecht, da dieses Protokoll sehr uneffizient arbeitet mit sehr kleinen Paketen.
Billige Karten, deren schlampig programmierte Treiber und Switches die dann einfach diese Performance nicht haben, bewirken dann ein übriges um den Durchsatz weiter in den Keller zu ziehen.
Übrigens ein Grund warum es Switches für 500 Euro gibt und welche für 50 die die gleiche Anzahl Ports haben ! Das Innenleben zählt....
Fazit: Lustig ist das Ergebnis keineswegs, sondern logisch und auch sinnvoll erklärbar.

Zudem kann man davon ausgehen das du, wie das Gros der Windows Netzwerk Laien die TCP Window Size in der Registry bei Windows XP nicht angepasst hast für den LAN Betrieb.
Dieser Fehler bewirkt eine zusätzliche Verschlechterung dieser Werte, da Windows XP ohne entsprechende Anpassung von einer 64 kBit Leitung und der damit korrespondierenden TCP Window Size am Netzwerk ausgeht und entsprechend lahmarschig ist. Es erklärt auch die Asymetrie der o.a. Durchsatzwerte.
Diesen Wert solltest du also zwingend in der Registry setzen auf z.B. Dezimal 400.000. Siehe:
http://www.heise.de/netze/artikel/TCP-IP-Tuning-221778.html --> Seite 5
Erst dann wäre das XP sinnvoll an Ethernet Geschwindigkeiten angepasst. Bei Win 7 ist das nicht erforderlich, da der das automatisiert anpasst !
Übrigens: Mit Jumbo Frames hat das rein gar nix zu tun, denn die sind nur auf Gigabit Ports zulässig und konfigurierbar. Auch das die nur bei großen Dateien zum tragen kommen gehört ins Reich der Märchen und zeugt eher von lückenhafter Netzwerk Kenntnis, sorry.
Zudem müssen sie sowohl auf den Endgeräten (Server, PCs) als auch auf deinen Switches entsprechend mit den MTU Settings angepasst werden damit die das per MTU Path Discovery entsprechend sauber aushandeln können. Bei Jumbo Frames gibt es keinerlei MTU Normgrößen, da Jumbo Support kein Ethernet Standard ist und jeder Hersteller das nach Hardware anders behandelt ! Also muss es auf dem gesamten Layer 2 Kommunikationspfad aktiv sein !
Hast du einen billigen und ungemanagten Taiwan GiG Switch kannst du von Jumbo Frames so oder so nur träumen, egal ob deine PC NICs es können ! Möbelwachs ums glatter und schneller zu machen hilft da dann auch nicht....
aqui
aqui 20.05.2012 um 15:33:19 Uhr
Goto Top
Wars das denn jetzt ?
Dann bitte auch
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !
moebelwachs
moebelwachs 20.05.2012 aktualisiert um 16:28:47 Uhr
Goto Top
Aber klar doch, herzlichen Dank für die sehr ausführliche und sachliche Klärung meiner Frage !
...vielleicht weißt du auch noch, wieso GB-NICs unter VB emuliert werden, wenn doch der virtuelle Switch nur 100Mbit supportet (so stehts jedenfalls in der FAQ) ?
Gruß
aqui
aqui 21.05.2012 aktualisiert um 12:16:40 Uhr
Goto Top
Na ja...in dem VB Host "fliegen" ja nicht beliebige NICs in Hardware irgendwo rum. Würde man ja auch sehen wenn man den Deckel mal aufmacht... Es ist doch klar das der "Switch" oder besser vSwitch und auch der Switchport zur VM selber von einem Stück Software emuliert wird.
Es macht auch Sinn das zu begrenzen in der Bandbreite, denn das gesamte Paket Handling Forwarding etc. muss diese Software auch mit dem Software Switch erledigen und der Switch soll ja möglichst nicht die Perfomance der VMs auf dem Host negativ beeinflussen, was er zweifelsohne machen würde, würde man ihm unbegrnezte Resourcen zur Verfügung stellen.
Alles logisch wenn man mal etwas nachdenkt was da drin so alles werkelt....