Überlegungen zu virtuellen Linux-Computern
Für virtuelle Linux- und BSD-Computer gelten im Vergleich zu virtuellen Windows-Computern in Hyper-V zusätzliche Überlegungen.
Die erste Überlegung besteht darin, ob Integration Services vorhanden ist oder ob die VM lediglich auf emulierter Hardware ohne Enlightenment ausgeführt wird. Unter Unterstützte virtuelle Linux- und FreeBSD-Computer für Hyper-V unter Windows Server und Windows finden Sie eine Tabelle der Linux- und BSD-Releases, in denen Integration Services integriert oder herunterladbar ist. Auf diesen Seiten finden Sie eine Übersicht über die verfügbaren Hyper-V-Features für Linux-Distributionen und gegebenenfalls Hinweise zu diesen Features.
Selbst wenn der Gast Integration Services ausführt, kann der Dienst mit Legacyhardware konfiguriert werden, die nicht die beste Leistung aufweist. Konfigurieren und verwenden Sie beispielsweise einen virtuellen Ethernetadapter für den Gast, anstatt einen Legacynetzwerkadapter zu verwenden. Ab Windows Server 2016 sind erweiterte Netzwerke wie SR-IOV ebenfalls verfügbar.
Linux-Netzwerkleistung
Linux aktiviert standardmäßig die Hardwarebeschleunigung und den Abladevorgang. Wenn vRSS in den Eigenschaften eines Netzwerkanschlusses auf dem Host aktiviert ist und der Linux-Gast die Möglichkeit hat, vRSS zu verwenden, wird die Funktion aktiviert. In PowerShell kann dieser Parameter mit dem EnableNetAdapterRSS
-Befehl geändert werden.
Das VMMQ-Feature (Virtual Switch RSS) kann auf ähnliche Weise an dem vom Gast verwendeten physischen Netzwerkanschluss aktiviert werden: Auf der Registerkarte Eigenschaften>Konfigurieren...>Erweitert wird Virtueller Switch für RSS auf Aktiviert festgelegt, oder VMMQ wird in PowerShell auf folgende Weise aktiviert:
Set-VMNetworkAdapter -VMName **$VMName** -VmmqEnabled $True
Der Gast kann zusätzliche TCP-Optimierungen durch die Erhöhung der Grenzwerte vornehmen. Die beste Leistung wird erzielt, wenn die Workload auf mehrere CPUs verteilt wird und Deep Workloads vorhanden sind, da virtualisierte Workloads eine höhere Latenz aufweisen als „Bare-Metal“-Workloads.
Hier sehen Sie einige Beispieloptimierungsparameter, die für Netzwerkbenchmarks nützlich waren:
net.core.netdev_max_backlog = 30000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_wmem = 4096 12582912 33554432
net.ipv4.tcp_rmem = 4096 12582912 33554432
net.ipv4.tcp_max_syn_backlog = 80960
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_abort_on_overflow = 1
Ein nützliches Tool für Netzwerkmicrobenchmarks ist ntttcp, das sowohl unter Linux als auch Windows verfügbar ist. Die Linux-Version ist Open Source und unter ntttcp-for-linux on github.com verfügbar. Die Windows-Version finden Sie im Download Center. Beim Optimieren von Workloads empfiehlt es sich, so viele Streams wie nötig zu verwenden, um den besten Durchsatz zu erzielen. Wenn Sie ntttcp zum Modellieren von Datenverkehr verwenden, legt der -P
-Parameter die Anzahl der verwendeten parallelen Verbindungen fest.
Linux-Speicherleistung
Unter Bewährte Methoden zum Ausführen von Linux unter Hyper-V werden einige Best Practices wie die folgenden aufgeführt. Der Linux-Kernel verfügt über unterschiedliche E/A-Planer zur Neuordnung von Anforderungen mit unterschiedlichen Algorithmen. NOOP ist eine First-in-First-Out-Warteschlange, die die Planungsentscheidung des Hypervisors weitergibt. Es wird empfohlen, NOOP als Planer beim Ausführen virtueller Linux-Computer auf Hyper-V zu verwenden. Um den Planer für ein bestimmtes Gerät zu ändern, fügen Sie in der Startladekonfiguration (z. B. /etc/grub.conf) elevator=noop
zu den Kernelparametern hinzu, und starten Sie das Gerät neu.
Wie bei Netzwerken gilt auch für Linux-Gastsysteme mit Speicher, dass die Leistung am meisten von mehreren Warteschlangen mit ausreichender Tiefe profitiert, damit der Host ausgelastet bleibt. Das Mikrobenchmarking der Speicherleistung lässt sich wahrscheinlich am besten mit dem fio-Benchmarktool und der libaio-Engine durchführen.