Überlegungen zu virtuellen Linux-Computern

Virtuelle Linux- und BSD-Computer haben im Vergleich zu Windows virtuellen Computern in Hyper-V zusätzliche Überlegungen.

Der erste Aspekt ist, ob Integration Services vorhanden sind oder ob der virtuelle Computer nur auf emulierten Hardware ohne Berücksichtigung ausgeführt wird. Eine Tabelle mit Linux- und BSD-Releases, die über integrierte oder herunterladbare Integration Services verfügen, finden Sie unter Unterstützte virtuelle Linux- und FreeBSD-Computer für Hyper-V Windows. Diese Seiten enthalten Raster der verfügbaren Hyper-V-Features, die für Linux-Distributionsversionen verfügbar sind, sowie Ggf. Hinweise zu diesen Features.

Selbst wenn der Gast Integration Services, kann er mit Legacyhardware konfiguriert werden, die nicht die beste Leistung zeigt. Konfigurieren und verwenden Sie beispielsweise einen virtuellen Ethernet-Adapter für den Gast, anstatt einen älteren Netzwerkadapter zu verwenden. Mit Windows Server 2016 sind auch erweiterte Netzwerke wie SR-IOV verfügbar.

Linux-Netzwerkleistung

Linux aktiviert standardmäßig Hardwarebeschleunigung und Ausladungen. Wenn vRSS in den Eigenschaften einer NIC auf dem Host aktiviert ist und der Linux-Gast über die Möglichkeit verfügt, vRSS zu verwenden, wird die Funktion aktiviert. In PowerShell kann derselbe Parameter mit dem Befehl geändert EnableNetAdapterRSS werden.

Auf ähnliche Weise kann das VMMQ-Feature (Virtual Switch RSS) auf der physischen NIC aktiviert werden, die von den GasteigenschaftenKonfiguriert...Legen Sie auf der Registerkarte Erweitert den virtuellen Switch RSS wie folgt auf Aktiviert fest, oder aktivieren Sie VMMQ in PowerShell:

 Set-VMNetworkAdapter -VMName **$VMName** -VmmqEnabled $True

Im Gast kann eine zusätzliche TCP-Optimierung durchgeführt werden, indem die Grenzwerte erhöht werden. Für die optimale Leistungsteilung der Workload auf mehrere CPUs und die Verwendung tiefer Workloads wird der beste Durchsatz erzeugt, da virtualisierte Workloads eine höhere Latenz als Bare-Metal-Workloads haben.

Beispiele für Optimierungsparameter, die in 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 Netzwerk-Microbenchmarks ist ntttcp, das sowohl unter Linux als auch unter Windows. Die Linux-Version ist Open Source und unter ntttcp-for-linux auf github.com. Die Windows finden Sie im Download Center. Beim Optimieren von Workloads ist es am besten, so viele Streams wie nötig zu verwenden, um den besten Durchsatz zu erzielen. Mithilfe von ntttcp zum Modellieren des Datenverkehrs legt der -P Parameter die Anzahl der verwendeten parallelen Verbindungen fest.

Linux Storage leistung

Einige bewährte Methoden wie die folgenden sind unter Bewährte Methoden für die Ausführung von Linux unter Hyper-V aufgeführt. Der Linux-Kernel verfügt über verschiedene E/A-Scheduler, um Anforderungen mit unterschiedlichen Algorithmen neu zu anordnen. NOOP ist eine First-in-First-Out-Warteschlange, die die vom Hypervisor zu treffende Zeitplanentscheidung übergibt. Es wird empfohlen, NOOP als Planer zu verwenden, wenn Sie virtuelle Linux-Computer auf Hyper-V ausführen. Um den Scheduler für ein bestimmtes Gerät zu ändern, fügen Sie in der Konfiguration des Startlademoduls (z. B. /etc/grub.conf) elevator=noop den Kernelparametern hinzu, und starten Sie dann neu.

Ähnlich wie bei Netzwerken profitiert die Linux-Gastleistung mit Speicher am meisten von mehreren Warteschlangen mit ausreichender Tiefe, um den Host ausgelastet zu halten. Die Microbenchmarking-Speicherleistung ist wahrscheinlich am besten mit dem Fio-Benchmarktool mit der Libaio-Engine.

Weitere Verweise