Saltar para o conteúdo principal

Alto uso de memória por máquinas virtuais Hyper-V

Clientes que usam planos WHS frequentemente perguntam por que um SO recém-instalado sem software usa de 80 a 90 por cento da RAM e onde essa memória é usada.

Parece assim:

HyperV high memory usage 1

Não há processos com alto uso de memória:

HyperV high memory usage 2

Este é um comportamento normal. É assim que funciona o mecanismo de Memória Dinâmica do Hyper-V.

https://technet.microsoft.com/en-us/library/hh831766.aspx

Se a máquina virtual exigir mais RAM, a memória será alocada automaticamente.

Como posso verificar se a quantidade de memória especificada no plano é realmente fornecida à máquina virtual?

Você pode baixar o utilitário RamMap da Sysinternals. Esta empresa pertence à Microsoft e o utilitário pode ser considerado uma ferramenta oficial recomendada:

https://technet.microsoft.com/en-us/sysinternals/rammap.aspx

https://download.sysinternals.com/files/RAMMap.zip

A quantidade de memória reservada pelo sistema de virtualização é exibida como Driver Locked:

HyperV high memory usage 3

Como posso descobrir quanta memória os processos do servidor usam no total?

Você pode fazer isso usando o seguinte comando do PowerShell (se o encaminhamento de buffer estiver habilitado, você pode colar o comando no console do PowerShell com um clique direito do mouse):

Get-Process | measure PM -sum

Você pode ver que há 39 processos em execução, e eles usam 358,739,968 bytes de RAM, o que equivale a aproximadamente 350 MB.

HyperV high memory usage 4

Para evitar cálculos manuais e o risco de um número incorreto de casas decimais, você pode usar o seguinte comando:

$mem = 0; Get-Process | %{$mem += $_.pm}; "{0:N2}MB " -f ($mem/1mb)

O resultado é 340 MB, o que é consistente com o valor acima:

HyperV high memory usage 5