Datendurchsatz zur VM deutlich geringer

RockNLol

Lieutenant
Registriert
Aug. 2008
Beiträge
814
Hi,
folgendes Setup:
Server 2012R2 Core als Hyper-V-Host und sonst gar nix
Server 2012R2 als Gastsystem mit allen Serveraufgaben betraut

Am Hostsystem sind 2x4TB WD-Red eingebaut mit einer .vhdx über die volle Größe
Am Gastsystem ist diese vhdx gemountet und darauf befinden sich diverse Freigaben.

Beim rauf- und runterkopieren ist mir aufgefallen dass es selten mehr 75MB/s hergibt über Gigabit-LAN, also habe ich ein wenig gebenchmarkt mit NetIO 1.32, Ergebnisse:


Der Host ist also deutlich schneller angebunden als die VM. Flaschenhals dürfte also der virtuelle Switch sein. Kann ich da irgendetwas verbessern?
 
Zuletzt bearbeitet:
Du wirst immer etwas overhead haben, denn das ganze wird ja virtualisiert.
75mb/s finde ich, ist schon ein ganz guter wert.
 
was wenn ich eine zweite NIC einbaue und die der VM zuweise? Bisher teilt sich die VM den Onboard-Realtek-Chip mit dem Host-System.
 
also 75 MB/s ist auch für ne VM schon etwas wenig...habe selbst ne 2008 R2 VM und die schaufelt mit mindestens 100MB/s durchgehend, auch über Realtek
Der interne Switch ist mit Sicherheit auch kein Flaschenhals, weil das ein 10G Switch ist

Schau mal ob du die Treiber für die NIC einbinden kannst (ich schätze mal du nutzt atm die Windows-Treiber)

Alternativ kannst du mal die Festplatte direkt durchreichen oder die .vhdx kleiner auslegen
 
Zuletzt bearbeitet:
RockNLol schrieb:
was wenn ich eine zweite NIC einbaue und die der VM zuweise? Bisher teilt sich die VM den Onboard-Realtek-Chip mit dem Host-System.

Scheint (für TCP/Rx) schon ein wenig langsam in der VM. Irgendwas wird da nicht stimmen. Firewall? Habe hier einen Phenom2 X6 1090t (Win8.1, x64), in dem (vmware) eine Windows-XP-VM (32bit) läuft. Wenn ich gegen einen Rechner (Core2Q 9550, Windows 8.1) messe, erhalte ich folgendes aus der VM heraus (TCP):
NETIO - Network Throughput Benchmark, Version 1.32
(C) 1997-2012 Kai Uwe Rommel

TCP connection established.
Packet size 1k bytes: 26.09 MByte/s Tx, 77.19 MByte/s Rx.
Packet size 2k bytes: 26.32 MByte/s Tx, 86.02 MByte/s Rx.
Packet size 4k bytes: 34.18 MByte/s Tx, 100.28 MByte/s Rx.
Packet size 8k bytes: 40.03 MByte/s Tx, 100.06 MByte/s Rx.
Packet size 16k bytes: 39.56 MByte/s Tx, 100.36 MByte/s Rx.
Packet size 32k bytes: 44.77 MByte/s Tx, 99.86 MByte/s Rx.
Done.

Und das geht über den Realtek-onboard-Chip des Mainboards durch einen 20€-1GbE-Switch. Welchen Netzmodus hat Deine VM? NAT zum Host? Eigene IP im LAN?

UDP ist bei Dir sehr gut. Das mag meine VM überhaupt nicht.
 
Zuletzt bearbeitet:
Von dem VMHost zum VMClient laeufts langsam? Das sollte aber wirklich nicht sein.
Laut iperf bekomm ich ueber 20GBit/s drueber.

Code:
root:~# iperf -c vm
------------------------------------------------------------
Client connecting to vmdeb, TCP port 5001
TCP window size:  165 KByte (default)
------------------------------------------------------------
[  3] local 192.168.xxx.xxx port 50420 connected with 192.168.xxx.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  24.5 GBytes  21.1 Gbits/sec

Zwar Linux aber wayne. Virtuelle Network Bridges sollten nicht an den Speed einer physikalischen NIC gebunden sein.
 
Um das klarzustellen: die beiden Benchmarks waren von meinem PC (NIC Intel Gigabit CT Desktop) per CAT6 Kabel in einen 40€ (ich weiß, immer noch kein Profigerät) Zyxel Gbit-Switch wieder mit CAT6 in meinen Server mit Realtek-Chip.
Der erste war von PC zum Hyper-V-Host, der zweite vom PC zur VM.
Die Festplatte bzw die vhdx spielt hier noch gar keine Rolle, da NetIO den Datendurchsatz direkt misst, ohne dazwischen auf die Festplatte zu schreiben, "Cache-LAN-Cache" sozusagen.

Mit den Treibern habe ich schon gekämpft, ist ja eine Server 2012 CORE, also nur commandline... Mit folgender Anleitung hab ich das gemacht:
http://www.server-talk.eu/2011/01/06/how-to-einen-treiber-bei-server-core-manuell-installieren/
installiert den Treiber aber nicht, weil "ist schon auf neuestem Stand". evtl. mal forcen...

Treiber gibts leider nur einen Windows 8 Treiber, der müsste aber laufen oder?

*edit: hier der Benchmark vom Host zur VM über den virtuellen Switch:


*edit2: Treiber installiert und siehe da, durchaus akzeptable Ergebnisse:
 
Zuletzt bearbeitet:
Zurück
Oben