Använda csv-minnesintern läscache

Gäller för: Azure Stack HCI, versionerna 22H2 och 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016

Det här avsnittet beskriver hur du använder systemminne för att öka prestandan för Azure Stack HCI och Windows Server genom att cachelagra frekventa läsningar. Skrivningar kan inte cachelagras i minnet.

Azure Stack HCI och Windows Server är kompatibla med minnesintern läscache för klusterdelade volymer (CSV). Användning av systemminne för att cachelagra läsningar kan förbättra prestanda för program som Hyper-V, som använder obuffrad I/O för att komma åt VHD- eller VHDX-filer. (Obuffrad I/Os är alla åtgärder som inte cachelagras av Windows Cache Manager.)

Eftersom det minnesinterna cacheminnet är serverlokalt förbättras datalokaliteten. De senaste läsningarna cachelagras i minnet på samma värd där den virtuella datorn (VM) körs, vilket minskar hur ofta läsningar skickas via nätverket. Detta resulterar i kortare svarstider och bättre lagringsprestanda.

Observera att csv-cacheminnet för läsning i minnet skiljer sig från cacheminnet för lagringspoolen.

Överväganden vid planering

Minnesintern läscache är mest effektiv för läsintensiva arbetsbelastningar, till exempel VDI (Virtual Desktop Infrastructure). Om arbetsbelastningen däremot är extremt skrivintensiv kan cachen medföra mer omkostnader än värde och bör inaktiveras.

Du kan använda upp till 80 % av det totala fysiska minnet för csv-minnesintern läscache. Var noga med att lämna tillräckligt med minne för dina virtuella datorer!

Anteckning

Vissa mikrobenchmarkeringsverktyg som DISKSPD och VM Fleet kan ge sämre resultat med csv-minnesintern läscache aktiverad än utan den. Som standard skapar VM Fleet en 10 GiB VHDX per virtuell dator – cirka 1 TiB totalt för 100 virtuella datorer – och utför sedan enhetligt slumpmässiga läsningar och skrivningar till dem. Till skillnad från verkliga arbetsbelastningar följer läsningarna inte något förutsägbart eller repetitivt mönster, så den minnesinterna cachen är inte effektiv och medför bara kostnader.

Konfigurera minnesintern läscache

Den minnesinterna csv-läscachen är tillgänglig i Azure Stack HCI, Windows Server 2019 och Windows Server 2016 med samma funktioner. I Azure Stack HCI och Windows Server 2019 är det aktiverat som standard med 1 gibibyte (GiB) allokerat. I Windows Server 2016 är det inaktiverat som standard.

OS-version Standardstorlek för CSV-cache
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (inaktiverad)

Konfigurera cachen med hjälp av Windows Admin Center

Så här konfigurerar du cachen med hjälp av Windows Admin Center:

  1. I Windows Admin Center ansluter du till ett kluster och väljer sedan Inställningar i fönstret Verktyg till vänster.
  2. Välj Minnesintern cache under Lagring i fönstret Inställningar .
  3. I den högra rutan aktiverar eller inaktiverar en kryssruta cachen, och du kan också ange det maximala minne per server som ska allokeras till cachen.
  4. Välj Spara när du är klar.

I Windows Admin Center aktiverar eller inaktiverar en kryssruta cachen. Du kan också ange maximalt minne per server som ska allokeras till cacheminnet.

Konfigurera cachen med Hjälp av PowerShell

Om du vill se hur mycket minne som allokeras med PowerShell kör du följande som administratör:

(Get-Cluster).BlockCacheSize

Värdet som returneras är i mebibyte (MiB) per server. Representerar till exempel 1024 1 GiB.

Om du vill ändra hur mycket minne som allokeras ändrar du det här värdet med hjälp av PowerShell. Om du till exempel vill allokera 2 GiB per server kör du:

(Get-Cluster).BlockCacheSize = 2048

För att ändringarna ska börja gälla omedelbart pausar du och återupptar sedan dina CSV-volymer eller flyttar dem mellan servrarna. Använd till exempel det här PowerShell-fragmentet för att flytta varje CSV till en annan servernod och tillbaka igen:

Get-ClusterSharedVolume | ForEach {
    $Owner = $_.OwnerNode
    $_ | Move-ClusterSharedVolume
    $_ | Move-ClusterSharedVolume -Node $Owner
}

Nästa steg

Relaterad information finns i: