
Ich habe eine ziemlich einfache Konfiguration: Windows Server 2012 Hyper V Host mit zwei VMs (beide Server 2012), eine für IIS, eine für SQL Server. Sie sind alle über die physische Netzwerkkarte verbunden.
Letzte Nacht habe ich versucht, einen virtuellen Switch hinzuzufügen und virtuelle Netzwerkkarten auf den beiden VMs einzurichten (zusätzlich zur physischen Netzwerkkarte).
Ich hatte die Server noch nicht umgestellt, um die virtuellen Netzwerkkarten tatsächlich zu verwenden, aber aus irgendeinem Grund zerstörte dies die Verbindungsgeschwindigkeit zwischen den beiden VMs – obwohl die virtuellen Netzwerkkarten nicht verwendet wurden. Wir sprechen von 200–500 Millisekunden bis 30–90 Sekunden pro Anfrage!
Nachdem ich heute Morgen die schrecklichen Auswirkungen auf meine Site gesehen hatte, habe ich die beiden virtuellen Netzwerkkarten deaktiviert (da das alles war, was ich geändert hatte), und tatsächlich kamen die Geschwindigkeiten zurück.
Letztendlich muss ich sie dazu bringen, auf die Verwendung der v-NICs umzustellen, aber zuerst muss ich dieses Problem lösen.
Was könnte die Ursache dafür sein? Und was kann ich tun, um das Problem zu beheben?
Weitere Details:
Die Einrichtung ist eigentlich sehr einfach (was möglicherweise ein Teil meines Problems ist, da ich möglicherweise zu stark vereinfache, was für die Einrichtung erforderlich ist).
Ich habe einen einzelnen Server mit einer einzelnen (physischen) Netzwerkkarte. Derzeit wird diese Netzwerkkarte für die Kommunikation zwischen dem virtuellen Host und dem Internet sowie zwischen den beiden VMs und dem Internet verwendet. Sie wird auch für die Intrakommunikation zwischen den beiden VMs verwendet.
Ich versuche jedoch, die Intra-Kommunikation so umzustellen, dass sie über vNICs über den virtuellen Switch läuft, wodurch die physische Netzwerkkarte nur noch für die externe Kommunikation verwendet werden kann.
Also habe ich dem V-Host einen internen virtuellen Switch hinzugefügt und dann jeder VM eine virtuelle Netzwerkkarte hinzugefügt.
Danach sank meine Verbindungsgeschwindigkeit – über die physische Netzwerkkarte – drastisch. Durch das Deaktivieren der vNICs (über die Netzwerkkonfiguration der VMs) wurde die Geschwindigkeit wieder normalisiert.
Unten finden Sie Bildschirme der VM-Konfiguration für die externe physische Netzwerkkarte und die internen vNICs (auf nur einer VM, da beide identisch konfiguriert sind).
Noch eine Runde mit Details
Wenn man sich etwas genauer mit dem Problem befasst, stellt sich heraus, dass Broadcom-NICs für Leistungsprobleme bekannt sind. Dieser Server verfügt über zwei Broadcom BCM5716C-NICs. Hier sind einige Links zur Diskussion bekannter Probleme:
Langsamer Netzwerkzugriff innerhalb virtueller Maschinen – Broadcom und Hyper-V
Sehr langsames Netzwerk der virtuellen Hyper-V-Maschine – VMQ – Broadcom
Also begann ich mit den Einstellungen herumzuspielen und deaktivierte nacheinander verschiedene Einstellungen. Keine der Änderungen schien das Problem zu beheben – wenn ich die Gast-vNIC aktiviere, sinken die Ladezeiten auf über 25 Sekunden. Deaktiviere ich sie erneut, sinken sie auf 250 ms –ein Faktor von 100!
Ich habe auch versucht, die neuesten Treiber von Broadcom zu installieren, kein Unterschied.
An diesem Punkt glaube ich, dass es sich um ein Kompatibilitätsproblem zwischen der Broadcom-Netzwerkkarte und Hyper-V handelt. Aber ich möchte keine neuen Netzwerkkarten bestellen und mir die Mühe machen, die Site herunterzufahren, sie zu installieren und zu konfigurieren, nur damit das Problem weiterhin besteht.
Daher wäre es schön, wenn ich die Netzwerkkarte definitiv ausschließen könnte.
Physische NIC-Konfiguration im Switch-Manager
Virtuelle Switch-Konfiguration im Switch-Manager
Physische NIC-Konfiguration auf der DB-VM
Virtuelle NIC-Konfiguration auf der DB-VM
Antwort1
Ich habe ein sehr ähnliches Setup. Die Antwort habe ich hier gefunden (Extrem langsame Dateiübertragungen zur Hyper-V-VM auf dem lokalen Computer)
Mit dem Broadcom-Chipsatz habe ich die virtuellen Warteschlangen deaktiviert und alle Latenzen sind verschwunden. Nehmen Sie diese Änderung an der physischen Netzwerkkarte vor, nicht an der virtuellen Netzwerkkarte.
Antwort2
Soweit ich weiß, gibt es bei Hyper-V kein physisches NIC-Passthrough. Sie haben einen vSwitch mit dem Namen „Physical NIC“ erstellt, der einem physischen Adapter zugeordnet ist und die Verwendung des Verwaltungsbetriebssystems ermöglicht. Auf jeder VM gibt es eine vNic, die diesen Switch verwendet. Warum möchten Sie von einem vSwitch zu einem anderen wechseln? Abgesehen davon, dass der „neue“ mit nichts verbunden ist, sehe ich wirklich keinen Sinn darin.
Hyper-V ist intelligent genug, um nur dann Datenverkehr vom virtuellen Switch an die physische Netzwerkkarte zu senden, wenn dieser aus dem Host herausgeleitet wird. Das bedeutet, dass Sie bereits das tun, was Sie erreichen möchten.