Usar o cache de leitura CSV na memória
Aplica-se a: Azure Stack HCI, versões 22H2 e 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Importante
O Azure Stack HCI agora faz parte do Azure Local. A renomeação da documentação do produto está em andamento. No entanto, as versões mais antigas do Azure Stack HCI, por exemplo 22H2, continuarão a fazer referência ao Azure Stack HCI e não refletirão a alteração de nome. Mais informações.
Este tópico descreve como usar a memória do sistema para aumentar o desempenho do Azure Stack HCI e do Windows Server armazenando em cache leituras frequentes. As gravações não podem ser armazenadas em cache na memória.
O Azure Stack HCI e o Windows Server são compatíveis com o cache de leitura na memória do Volume Compartilhado do Cluster (CSV). O uso da memória do sistema para armazenar leituras em cache pode melhorar o desempenho de aplicativos como o Hyper-V, que usa E/S sem buffer para acessar arquivos VHD ou VHDX. (E/S sem buffer são quaisquer operações que não são armazenadas em cache pelo Gerenciador de Cache do Windows.)
Como o cache na memória é local do servidor, ele melhora a localidade dos dados. As leituras recentes são armazenadas em cache na memória no mesmo host em que a máquina virtual (VM) está sendo executada, reduzindo a frequência com que as leituras passam pela rede. Isso resulta em menor latência e melhor desempenho de armazenamento.
Observe que o cache de leitura CSV na memória é diferente do cache do pool de armazenamento.
Considerações sobre o planeamento
O cache de leitura na memória é mais eficaz para cargas de trabalho de leitura intensiva, como VDI (Virtual Desktop Infrastructure). Por outro lado, se a carga de trabalho for extremamente intensiva em gravação, o cache pode introduzir mais sobrecarga do que valor e deve ser desativado.
Você pode usar até 80% da memória física total para o cache de leitura CSV na memória. Tenha cuidado para deixar memória suficiente para suas VMs!
Nota
Certas ferramentas de microbenchmarking como DISKSPD e VM Fleet podem produzir resultados piores com o cache de leitura CSV na memória ativado do que sem ele. Por padrão, o VM Fleet cria um VHDX de 10 GiB por VM – aproximadamente 1 TiB total para 100 VMs – e, em seguida, executa leituras e gravações uniformemente aleatórias neles. Ao contrário das cargas de trabalho reais, as leituras não seguem nenhum padrão previsível ou repetitivo, portanto, o cache na memória não é eficaz e apenas incorre em sobrecarga.
Configurando o cache de leitura na memória
O 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, ele está ativado por padrão com 1 gibibyte (GiB) alocado. No Windows Server 2016, ele está desativado por padrão.
Versão do Sistema Operativo | Tamanho padrão do cache CSV |
---|---|
Azure Stack HCI | 1 GiB |
Windows Server 2019 | 1 GiB |
Windows Server 2016 | 0 (desativado) |
Configurar o cache usando o Windows Admin Center
Para configurar o cache usando o Windows Admin Center, faça o seguinte:
- No Windows Admin Center, conecte-se a um cluster e selecione Configurações no painel Ferramentas à esquerda.
- Selecione Cache na memória em Armazenamento no painel Configurações .
- No painel direito, uma caixa de seleção habilita ou desabilita o cache, e você também pode especificar a memória máxima por servidor a ser alocada para o cache.
- Quando terminar, selecione Guardar.
Configurar o cache usando o PowerShell
Para ver quanta memória é alocada usando o PowerShell, execute o seguinte como administrador:
(Get-Cluster).BlockCacheSize
O valor retornado é em mebibytes (MiB) por servidor. Por exemplo, 1024
representa 1 GiB.
Para alterar a quantidade de memória alocada, modifique esse valor usando o PowerShell. Por exemplo, para alocar 2 GiB por servidor, execute:
(Get-Cluster).BlockCacheSize = 2048
Para que as alterações entrem em vigor imediatamente, pause e retome os volumes CSV ou mova-os entre servidores. Por exemplo, use este fragmento do PowerShell para mover cada CSV para outro nó de servidor e vice-versa:
Get-ClusterSharedVolume | ForEach {
$Owner = $_.OwnerNode
$_ | Move-ClusterSharedVolume
$_ | Move-ClusterSharedVolume -Node $Owner
}
Próximos passos
Para obter informações relacionadas, consulte também: