De CSV-leescache in het geheugen gebruiken
Van toepassing op: Azure Stack HCI, versies 21H2 en 20H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
In dit onderwerp wordt beschreven hoe u systeemgeheugen gebruikt om de prestaties van Azure Stack HCI te verbeteren door regelmatige leesresultaten in de caching op te geven. Schrijf schrijven kan niet in de cache worden opgeslagen in het geheugen.
Azure Stack HCI is compatibel met de Cluster Shared Volume (CSV) in het geheugen leescache. Het gebruik van systeemgeheugen om leesaanvragen in de cache op te slaan, kan de prestaties verbeteren voor toepassingen zoals Hyper-V, die gebruikmaakt van niet-doorbuffered I/O voor toegang tot VHD- of VHDX-bestanden. (Niet-gebuffered I/O-bewerkingen zijn bewerkingen die niet in de cache worden opgeslagen door Windows Cache Manager.)
Omdat de cache in het geheugen server-lokaal is, verbetert dit de gegevens lokaliteit: recente leesgegevens worden in het cachegeheugen opgeslagen op dezelfde host waarop de virtuele machine (VM) wordt uitgevoerd, waardoor het aantal leesingen via het netwerk wordt verkleind. Dit resulteert in een lagere latentie en betere opslagprestaties.
Houd er rekening mee dat de leescache van het CSV-bestand in het geheugen verschilt van de cache van de opslaggroep.
Overwegingen bij de planning
De leescache in het geheugen is het meest effectief voor leesintensieve workloads, zoals VDI (Virtual Desktop Infrastructure). Als de workload daarentegen zeer schrijfintensief is, kan de cache meer overhead dan waarde introduceren en moet deze worden uitgeschakeld.
U kunt maximaal 80% van het totale fysieke geheugen gebruiken voor de CSV-leescache in het geheugen. Zorg ervoor dat u voldoende geheugen over hebt voor uw VM's.
Notitie
Bepaalde hulpprogramma's voor het maken van markeringen, zoals DISKSPD en VM Fleet, kunnen slechtere resultaten opleveren als de CSV-leescache in het geheugen is ingeschakeld dan zonder deze cache. Standaard maakt VM Fleet één VHDX van 10 GiB per VM ( ongeveer 1 TiB in totaal voor 100 VM's) en voert vervolgens gelijkmatig willekeurige lees- en schrijfrechten naar deze VM's uit. In tegenstelling tot echte werkbelastingen volgen de lees leesingen geen voorspelbaar of herhalend patroon, waardoor de cache in het geheugen niet effectief is en er alleen overhead nodig is.
De leescache in het geheugen configureren
De in-memory leescache van het CSV is beschikbaar in Azure Stack HCI, Windows Server 2019 en Windows Server 2016 met dezelfde functionaliteit. In Azure Stack HCI en Windows Server 2019 is standaard 1 gibibyte (GiB) toegewezen. In Windows Server 2016 is deze standaard uitgeschakeld.
| Besturingssysteemversie | Standaardgrootte van CSV-cache |
|---|---|
| Azure Stack HCI | 1 GiB |
| Windows Server 2019 | 1 GiB |
| Windows Server 2016 | 0 (uitgeschakeld) |
De cache configureren met behulp Windows Beheercentrum
Als u de cache wilt configureren Windows beheercentrum, selecteert u Instellingen onder aan het menu Extra aan de linkerkant. Ga vervolgens naar Storage Cache in het geheugen. Met een selectievakje wordt de cache in- of uitgeschakeld, en u kunt ook het maximale geheugen per server opgeven dat aan de cache moet worden toegewezen. Zorg ervoor dat u onder aan de pagina op Opslaan klikt nadat u de wijzigingen hebt aangebracht.
De cache configureren met Behulp van PowerShell
Voer het volgende uit om te zien hoeveel geheugen wordt toegewezen met behulp van PowerShell:
(Get-Cluster).BlockCacheSize
De geretourneerde waarde is in mebibytes (MiB) per server. Vertegenwoordigt 1024 bijvoorbeeld 1 GiB.
Als u wilt wijzigen hoeveel geheugen wordt toegewezen, wijzigt u deze waarde met behulp van PowerShell. Als u bijvoorbeeld 2 GiB per server wilt toewijzen, moet u het volgende uitvoeren:
(Get-Cluster).BlockCacheSize = 2048
Als u wilt dat wijzigingen onmiddellijk van kracht worden, pauzeert en hervat u de CSV-volumes of verplaatst u deze tussen servers. Gebruik bijvoorbeeld dit PowerShell-fragment om elk CSV-bestand naar een ander server-knooppunt te verplaatsen en weer terug:
Get-ClusterSharedVolume | ForEach {
$Owner = $_.OwnerNode
$_ | Move-ClusterSharedVolume
$_ | Move-ClusterSharedVolume -Node $Owner
}
Volgende stappen
Zie voor gerelateerde informatie ook:
