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:
- No Windows Admin Center, ligue a um cluster e, em seguida, selecione Definições no painel Ferramentas à esquerda.
- Selecione Cache dentro da memória em Armazenamento no painel Definições .
- 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.
- Quando terminar, selecione Guardar.
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: