Dela via


Överväganden för virtuell Linux-dator

Virtuella Linux- och BSD-datorer har ytterligare överväganden jämfört med virtuella Windows-datorer i Hyper-V.

Det första du bör tänka på är om Integration Services finns eller om den virtuella datorn bara körs på emulerad maskinvara utan upplysning. En tabell med Linux- och BSD-versioner som har inbyggda eller nedladdningsbara integrationstjänster finns i virtuella Linux- och FreeBSD-datorer som stöds för Hyper-V i Windows. Dessa sidor har tabeller med Hyper-V-funktioner som är tillgängliga för Linux-distributionsversioner och anteckningar om dessa funktioner vid behov.

Även när gästen kör Integration Services kan den konfigureras med äldre maskinvara som inte uppvisar bästa prestanda. Du kan till exempel konfigurera och använda ett virtuellt Ethernet-kort för gästen i stället för att använda ett äldre nätverkskort. Med Windows Server 2016 finns även avancerade nätverk som SR-IOV tillgängliga.

Prestanda för Linux-nätverk

Linux möjliggör som standard maskinvaruacceleration och avlastningar som standard. Om vRSS är aktiverat i egenskaperna för ett nätverkskort på värden och Linux-gästen har möjlighet att använda vRSS aktiveras funktionen. I PowerShell kan samma parameter ändras med EnableNetAdapterRSS kommandot .

På samma sätt kan funktionen VMMQ (VIRTUAL Switch RSS) aktiveras på det fysiska nätverkskortet som används av gästegenskaperna>Konfigurera...>På fliken >Avancerat anger du RSS för virtuell växel till Aktiverad eller aktivera VMMQ i PowerShell med hjälp av följande:

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

I gästmiljön kan ytterligare justering av TCP-parametrar utföras genom att öka gränsvärdena. För bästa möjliga prestanda kan du sprida arbetsbelastningen över flera processorer och ha djupa arbetsbelastningar, vilket ger det bästa dataflödet, eftersom virtualiserade arbetsbelastningar har högre svarstid än "bare metal"-arbetsbelastningar.

Några exempel på justeringsparametrar som har varit användbara i nätverksmått är:

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

Ett användbart verktyg för nätverksmikrobenchmarker är ntttcp, som finns i både Linux och Windows. Linux-versionen är öppen källkod och tillgänglig från ntttcp-for-linux på github.com. Windows-versionen finns i nedladdningscentret. När du justerar arbetsbelastningar är det bäst att använda så många strömmar som möjligt för att få bästa möjliga dataflöde. Med ntttcp för att modellera trafik anger parametern -P antalet parallella anslutningar som används.

Linux Storage-prestanda

Några metodtips, till exempel följande, visas i Metodtips för att köra Linux på Hyper-V. Linux-kerneln har olika I/O-schemaläggare för att ordna om begäranden med olika algoritmer. NOOP är en första-i-först-ut-kö som överlåter schemabeslutet till hypervisorn. Vi rekommenderar att du använder NOOP som schemaläggare när du kör en virtuell Linux-dator på Hyper-V. Om du vill ändra schemaläggaren för en specifik enhet i startinläsarens konfiguration (till exempel/etc/grub.conf) lägger du till elevator=noop kernelparametrarna och startar sedan om.

Precis som vid nätverk förbättras Linux-gästens prestanda med lagring mest av flera köer med tillräckligt djup för att hålla värdsystemet sysselsatt. Microbenchmarking-lagringsprestanda är förmodligen bäst med fio benchmark-verktyget med libaio-motorn.

Ytterligare referenser