
Peço desculpas antecipadamente se isso não estiver claro o suficiente para entender meu problema, é um pouco longo, mas fiz o possível para torná-lo compreensível.
Estou executando um Exchange 2016 CU6 em uma VM do Windows Server 2016 e recebo frequentemente um aviso no log do aplicativo informando que estou sem memória virtual (arquivo de paginação).
Meu monitoramento mostra que o arquivo de paginação está em 4 GB desde que a VM foi criada em abril, nunca aumentou além de 4 GB nem diminuiu.
Para solucionar esse problema e entender qual é o problema, criei duas VMs de teste com uma instalação básica do Windows Server 2016 Standard e do Windows Server 2008 R2 Enterprise, ambos com a mesma configuração de memória física e virtual:
Testar configuração da VM
BATER: 4GB
Disco C (dedicado ao sistema): 32 GB
Disco G (dedicado ao arquivo de paginação): 8 GB
Arquivo de paginação para unidade C: 512 - 1024MB
Arquivo de paginação para unidade G: Tamanho gerenciado pelo sistema
Minha VM de teste 2016 está usando atualmente 512 MB na unidade C: e 1 GB na unidade G:, totalizando 5,5 de memória comprometida
A VM de teste 2008 está usando atualmente 512 MB na unidade C: e 4 GB na unidade G:, totalizando 12,5 GB de memória comprometida
Depois de pesquisar muito sobre memória comprometida, encontrei este artigo de Mark Russinovitch:https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/
Decidi usar a ferramenta testlimit64.exe com a opção -m para ver se o arquivo de paginação aumentaria na VM de teste 2016 e na VM de teste 2008.
O resultado reflete o problema explicado inicialmente onde o arquivo de paginação na VM de teste 2016 não aumenta na unidade G:, mas aumenta na VM de teste 2008:
De acordo com esta base de conhecimento da Microsoft:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/automatic-memory-dump, usando a configuração de despejo automático de memória emPainel de controle-> Sistema-> Configurações avançadas do sistema-> Inicialização e recuperação-> Gravar informações de depuraçãocom o arquivo de paginação configurado como gerenciado pelo sistema, ele pode definir o arquivo de paginação para um tamanho menor que a quantidade de memória física.
Os testes que realizei não utilizaram essa configuração, tanto a VM de teste 2008 quanto a VM de teste 2016 foram configuradas com dump de memória do Kernel.
Portanto, se eu definir o arquivo de paginação na unidade G: como Sistema gerenciado na VM de teste 2016, seu tamanho será definido automaticamente pelo Windows e não aumentará quando estiver sob carga.Este é o cerne do problema, pois é uma mudança de comportamento do Windows Server 2008.
Meu último teste foi configurar o arquivo de paginação na unidade G: manualmente para 4096 - 8100 MB e executar a ferramenta testlimit64.exe com a opção -m novamente e, como você pode ver, o arquivo de paginação aumenta de 4 GB para ~ 8 GB
Então aqui está minha pergunta: por que o Windows Server 2016 não aumenta o tamanho do arquivo de paginação quando definido como gerenciado pelo sistema? O que mudou entre o Windows Server 2008 e 2016 em relação a isso?
Muito obrigado por ler até o fim e por suas respostas.
Responder1
De acordo com Este artigo, para os arquivos de paginação gerenciados pelo sistema do Server 2016 são dimensionados de acordo com o seguinte:
3 × RAM or 4 GB, whichever is larger. This is then limited to the volume size ÷ 8. However it can grow to within 1 GB of free space on the volume if required for crash dump settings.
Para o Server 2008, afirma:
3 × RAM or 4 GB, whichever is larger
Parece que a regra 1/8 aplicada no Server 2016 é o que você está vendo.
Espero que ajude... Felicidades