Usare la cache di lettura in memoria Volume condiviso cluster

Si applica a: Azure Stack HCI, versioni 22H2 e 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016

Questo argomento descrive come usare la memoria di sistema per migliorare le prestazioni di Azure Stack HCI e Windows Server memorizzando nella cache letture frequenti. Le scritture non possono essere memorizzate nella cache in memoria.

Azure Stack HCI e Windows Server sono compatibili con la cache in lettura volume condiviso cluster (CSV). L'uso della memoria di sistema per memorizzare nella cache le letture può migliorare le prestazioni per applicazioni come Hyper-V, che usa I/O non memorizzate per accedere ai file VHD o VHDX. Le operazioni di I/O non memorizzate nel buffer sono operazioni non memorizzate nella cache da Gestione cache di Windows.

Poiché la cache in memoria è locale del server, migliora la località dei dati. Le letture recenti vengono memorizzate nella cache nella memoria nello stesso host in cui è in esecuzione la macchina virtuale, riducendo la frequenza con cui le letture passano in rete. Ciò comporta una latenza inferiore e prestazioni di archiviazione migliori.

Si noti che la cache di lettura in memoria csv è diversa dalla cache del pool di archiviazione.

Considerazioni relative alla pianificazione

La cache di lettura in memoria è più efficace per carichi di lavoro a elevato utilizzo di lettura, ad esempio Virtual Desktop Infrastructure (VDI). Al contrario, se il carico di lavoro è estremamente intensivo in scrittura, la cache può comportare un sovraccarico maggiore del valore e deve essere disabilitata.

È possibile usare fino all'80% della memoria fisica totale per la cache di lettura in memoria CSV. Prestare attenzione a lasciare memoria sufficiente per le macchine virtuali.

Nota

Alcuni strumenti di microbenchmarking come DISKSPD e VM Fleet possono produrre risultati peggiori con la cache di lettura in memoria CSV abilitata rispetto a senza di essa. Per impostazione predefinita, la flotta di macchine virtuali crea un VHDX giB di 10 GiB per ogni macchina virtuale, circa 1 TiB totale per 100 macchine virtuali, quindi esegue letture e scritture casuali in modo uniforme . A differenza dei carichi di lavoro reali, le letture non seguono alcun modello prevedibile o ripetitivo, quindi la cache in memoria non è efficace e comporta solo un sovraccarico.

Configurazione della cache di lettura in memoria

La cache di lettura in memoria CSV è disponibile in Azure Stack HCI, Windows Server 2019 e Windows Server 2016 con le stesse funzionalità. In Azure Stack HCI e Windows Server 2019 è attivato per impostazione predefinita con 1 gibibyte (GiB) allocato. In Windows Server 2016 è disattivato per impostazione predefinita.

Versione sistema operativo Dimensioni predefinite della cache CSV
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (disabilitata)

Configurare la cache usando Windows Admin Center

Per configurare la cache usando Windows Admin Center, eseguire le operazioni seguenti:

  1. In Windows Admin Center connettersi a un cluster e quindi selezionare Impostazioni nel riquadro Strumenti a sinistra.
  2. Selezionare Cache in memoria inArchiviazione nel riquadro Impostazioni .
  3. Nel riquadro destro una casella di controllo abilita o disabilita la cache ed è anche possibile specificare la memoria massima per ogni server da allocare alla cache.
  4. Al termine scegliere Salva.

In Windows Admin Center, una casella di controllo abilita o disabilita la cache. È anche possibile specificare la memoria massima per ogni server da allocare alla cache.

Configurare la cache con PowerShell

Per verificare la quantità di memoria allocata tramite PowerShell, eseguire quanto segue come amministratore:

(Get-Cluster).BlockCacheSize

Il valore restituito è in mebibyte (MiB) per server. Ad esempio, 1024 rappresenta 1 GiB.

Per modificare la quantità di memoria allocata, modificare questo valore usando PowerShell. Ad esempio, per allocare 2 GiB per server, eseguire:

(Get-Cluster).BlockCacheSize = 2048

Per rendere effettive immediatamente le modifiche, sospendere e quindi riprendere i volumi CSV o spostarli tra server. Ad esempio, usare questo frammento di PowerShell per spostare ogni csv in un altro nodo del server e tornare indietro:

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

Passaggi successivi

Per informazioni correlate, vedere anche: