Utilizar a cache de leitura na memória do CSV

Aplica-se a: Azure Stack HCI, versões 22H2 e 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016

Este tópico descreve como utilizar a memória do sistema para aumentar o desempenho do Azure Stack HCI e do Windows Server ao colocar em cache leituras frequentes. As escritas não podem ser colocadas em cache na memória.

O Azure Stack HCI e o Windows Server são compatíveis com a cache de leitura na memória do Volume Partilhado de Cluster (CSV). Utilizar a memória do sistema para colocar leituras em cache pode melhorar o desempenho de aplicações como o Hyper-V, que utiliza E/S não instalada para aceder a ficheiros VHD ou VHDX. (A E/S não instalada são operações que não são colocadas em cache pelo Gestor de Cache do Windows.)

Uma vez que a cache dentro da memória é server-local, melhora a localidade dos dados. As leituras recentes são colocadas em cache na memória no mesmo anfitrião onde a máquina virtual (VM) está em execução, reduzindo a frequência com que as leituras passam pela rede. Isto resulta numa menor latência e num melhor desempenho de armazenamento.

Tenha em atenção que a cache de leitura na memória do CSV é diferente da cache do agrupamento de armazenamento.

Considerações sobre o planeamento

A cache de leitura dentro da memória é mais eficaz para cargas de trabalho de leitura intensiva, como a Infraestrutura de Ambiente de Trabalho Virtual (VDI). Por outro lado, se a carga de trabalho for extremamente intensiva em termos de escrita, a cache pode introduzir mais sobrecarga do que o valor e deve ser desativada.

Pode utilizar até 80% da memória física total para a cache de leitura na memória do CSV. Tenha cuidado para deixar memória suficiente para as suas VMs!

Nota

Determinadas ferramentas de marcação de micróbios, como DISKSPD e VM Fleet , podem produzir resultados piores com a cache de leitura na memória do CSV ativada do que sem a mesma. Por predefinição, a VM Fleet cria um VHDX de 10 GiB por VM ( aproximadamente 1 TiB no total para 100 VMs) e, em seguida, executa leituras e escritas uniformemente aleatórias . Ao contrário das cargas de trabalho reais, as leituras não seguem qualquer padrão previsível ou repetitivo, pelo que a cache dentro da memória não é eficaz e apenas incorre em sobrecarga.

Configurar a cache de leitura dentro da memória

A cache de leitura CSV na memória está disponível no Azure Stack HCI, Windows Server 2019 e Windows Server 2016 com a mesma funcionalidade. No Azure Stack HCI e no Windows Server 2019, está ativado por predefinição com 1 gibibyte (GiB) atribuído. No Windows Server 2016, está desativado por predefinição.

Versão do SO Tamanho da cache CSV predefinido
Azure Stack HCI 1 GiB
Windows Server 2019 1 GiB
Windows Server 2016 0 (desativado)

Configurar a cache com Windows Admin Center

Para configurar a cache com Windows Admin Center, faça o seguinte:

  1. No Windows Admin Center, ligue a um cluster e, em seguida, selecione Definições no painel Ferramentas à esquerda.
  2. Selecione Cache dentro da memória em Armazenamento no painel Definições .
  3. No painel direito, uma caixa de verificação ativa ou desativa a cache e também pode especificar a memória máxima por servidor a atribuir à cache.
  4. Quando terminar, selecione Guardar.

No Windows Admin Center, uma caixa de verificação ativa ou desativa a cache. Também pode especificar a memória máxima por servidor a atribuir à cache.

Configurar a cache com o PowerShell

Para ver a quantidade de memória alocada com o PowerShell, execute o seguinte como administrador:

(Get-Cluster).BlockCacheSize

O valor devolvido está em mebibytes (MiB) por servidor. Por exemplo, 1024 representa 1 GiB.

Para alterar a quantidade de memória alocada, modifique este valor com o PowerShell. Por exemplo, para alocar 2 GiB por servidor, execute:

(Get-Cluster).BlockCacheSize = 2048

Para que as alterações entrem em vigor imediatamente, coloque em pausa e, em seguida, retome os volumes CSV ou mova-os entre servidores. Por exemplo, utilize este fragmento do PowerShell para mover cada CSV para outro nó de servidor e voltar atrás:

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

Passos seguintes

Para obter informações relacionadas, consulte também: