Saltar al contenido principal

Alto uso de memoria por las máquinas virtuales Hyper-V

Los clientes que usan planes WHS a menudo preguntan por qué un SO recién instalado sin software usa entre el 80 y el 90 por ciento de la RAM y dónde se utiliza esta memoria.

Se ve así:

HyperV high memory usage 1

No hay procesos con un alto uso de memoria:

HyperV high memory usage 2

Este es un comportamiento normal. Así es como funciona el mecanismo de Memoria dinámica de Hyper-V.

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

Si la máquina virtual requiere más RAM, la memoria se asignará automáticamente.

¿Cómo puedo comprobar que la cantidad de memoria especificada en el plan realmente se proporciona a la máquina virtual?

Puede descargar la utilidad RamMap de Sysinternals. Esta empresa pertenece a Microsoft y la utilidad puede considerarse una herramienta oficial recomendada:

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

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

La cantidad de memoria que está reservada por el sistema de virtualización se muestra como Driver Locked:

HyperV high memory usage 3

¿Cómo puedo averiguar cuánta memoria usan en total los procesos del servidor?

Puede hacerlo usando el siguiente comando de PowerShell (si el reenvío del búfer está habilitado, puede pegar el comando en la consola de PowerShell con un clic derecho del ratón):

Get-Process | measure PM -sum

Puede ver que hay 39 procesos en ejecución y que usan 358,739,968 bytes de RAM, lo que equivale aproximadamente a 350 MB.

HyperV high memory usage 4

Para evitar cálculos manuales y el riesgo de un número incorrecto de decimales, puede usar el siguiente comando:

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

El resultado es 340 MB, lo que coincide con la cifra anterior:

HyperV high memory usage 5