Dela via


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

Viktigt!

Azure Stack HCI är nu en del av Azure Local. Namnbytet av produktdokumentation pågår. Äldre versioner av Azure Stack HCI, till exempel 22H2, fortsätter dock att referera till Azure Stack HCI och återspeglar inte namnändringen. Läs mer.

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 klusterdelade volymer (CSV) minnesintern läscache. Att använda systemminne för att cachelagra läsningar kan förbättra prestanda för program som Hyper-V, som använder obuffertad I/O för att komma åt VHD- eller VHDX-filer. (Obufferterad I/Os är alla åtgärder som inte cachelagras av Windows Cache Manager.)

Eftersom minnesintern cache är serverlokal, förbättrar den 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 går över nätverket. Detta resulterar i lägre svarstid och bättre lagringsprestanda.

Observera att CSV:s minnesinterna läscache skiljer sig från lagringspoolens cacheminne.

Ö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!

Kommentar

Vissa mikrobenchmarkeringsverktyg som DISKSPD och VM Fleet kan ge sämre resultat med CSV-minnesintern läscache aktiverat än utan det. 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å minnesintern cache är inte effektiv och medför bara omkostnader.

Konfigurera minnesintern läscache

CsV:s minnesinterna läscache ä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 cacheminnet med Hjälp av Windows Administrationscenter

Gör följande för att konfigurera cachen med Hjälp av Windows Admin Center:

  1. I Administrationscenter för Windows 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 cacheminnet, och du kan också ange det maximala minne per server som ska allokeras till cacheminnet.
  4. Välj Spara när du är klar.

I Windows Administrationscenter aktiverar eller inaktiverar en kryssruta cacheminnet. Du kan också ange det maximala minne per server som ska allokeras till cacheminnet.

Konfigurera cacheminnet med 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 också: