Quantcast
Channel: Blog Virtualizacion
Viewing all articles
Browse latest Browse all 679

Memoria Dinamica Hyper-V

$
0
0

Memoria Dinamica Hyper-V

Microsoft Hyper-V tiene una función bastante interesante que es Dynamic Memory. Vamos a hablar primero de la memoria dinámica como tal.

Hablamos de memoria dinámica como aquella que se solicita en tiempo de ejecución. Esta característica es importante en entornos que no podemos definir un valor concreto o que nos interesa que una máquina virtual esté esperando a que conecte una sesión de usuario, un ejemplo de esto son los escritorios de VMware o Citrix.

No la recomendaría por ejemplo en máquinas virtuales de servidores, porque pierdes el control de la memoria que gestiona el servidor en los procesos, donde cuanto más control tengamos, mejor podremos optimizar la plataforma. En una infraestructura con VDIs o VDAs, tendrás que calcular la capacidad de máquinas en el hypervisor, tomando de referencia los máximos asignados.

Para ese cálculo deberemos usar los requerimientos del hypervisor para trabajar. Por ejemplo, un hypervisor Microsoft Hyper-V no necesita más de 512MB para funcionar si lo instalas en Core. En cambio, si necesitas la interfaz gráfica, la memoria necesaria sube a los 2GB de RAM, a descontar de la capacidad total.

La configuración de la memoria dinámica en Hyper-V la podemos realizar a nivel de máquina virtual. Desde Hyper-V Manager, por ejemplo, pulsamos botón derecho Settings y vamos a la sección Memory. Tenemos que tener la máquina virtual apagada para activar la función Dynamic Memory:

memoria-dinamica-hyper-v-1

Una vez apagada podremos definir todos los valores. Daros cuenta que podéis definir la ram de arranque, el valor mínimo o máximo que se van a reservar para ella, la prioridad dentro del Hypervisor o el buffer de memoria para esa máquina virtual concreta.

memoria-dinamica-hyper-v-2

Os explico un poco más cada valor:

  • RAM: Se define la RAM de arranque, que es memoria con la que empieza la máquina.
  • Valor mínimo: Es la memoria mínima asignada a la máquina, y es a donde tenderá la máquina virtual cuando se estabilice una vez arrancada, si no tiene sesiones corriendo en ella.
  • Valor máximo: Es la memoria máxima que podrá usar dentro del Hypervisor.
  • Memory buffer: Es el buffer que guarda el hypervisor para esa máquina virtual. Si lo dejamos por defecto, el 20%, y el máximo es 3072MB serían 460,8MB que reserva para el búffer de memoria (3072+460.8). Es importante tener este valor en cuenta a la hora de calcular el número de máquinas virtuales.
  • Memory weight: Es el peso de la memoria de esa máquina virtual dentro del hypervisor.

Una máquina virtual sin sesión de usuario empieza en 1024 MB al arrancar, cuando se estabiliza, aunque está corriendo se mantiene sobre ese valor o es inferior:

memoria-dinamica-hyper-v-3

Máquinas virtuales con sesión corriendo, hasta 3072 MB que es el máximo que le he marcado:

memoria-dinamica-hyper-v-4

¿Qué sistemas operativos admiten memoria dinámica?

No todos los sistemas operativos admiten memoria dinámica dentro de Hyper-V. Si utilizáis Windows 10 ó Windows Server 2016 o superior no tendréis problemas con esto. Con versiones inferiores os puede dar problemas o directamente no funcionar. Con sistemas operativos Linux pasa parecido, no todas las distribuciones lo soportan y tenéis que tenerlo en cuenta.

¿Se puede usar memoria dinámica en todos los servicios?

Como hemos dicho, puede ser interesante para nuestros clientes, pero en cambio no es muy aconsejable usar memoria dinámica en servicios de servidor como un Exchange, SQL,…

Exportar datos memoria dinámica por Powershell

Os dejo un comando para poder monitorizar en vuestro Hyper-V el consumo:

Get-VM | where DynamicMemoryEnabled -eq $true | select Name, MemoryAssigned, MemoryMinimum, MemoryMaximum, MemoryDemand | ConvertTo-Csv -NoTypeInformation | Add-Content -Path C:\MemoriaDinamicaMVs.csv

Importancia valor RAM (valor de inicio)

Es importante, para no cargar la CPU del hypervisor cuando un usuario inicia una sesión, por ejemplo, en Citrix sobre una VDA, que la memoria con la que la máquina virtual arranca sea lo suficientemente alta para no apurar la CPU. Porque si ese proceso pasa con muchos usuarios a la vez (cuando las personas se incorporan al trabajo, por ejemplo) podemos tener problemas de rendimiento general.

Realmente, un valor mínimo de 512MB y 1024MB de valor de inicio, por ejemplo, puede ser suficiente para una VDA que sea un Windows Server. Quizás en un Windows 10, tengamos que ampliar un poco esos valores. Aunque Microsoft aconseja un valor de 2048MB mínimo, todo dependerá de vuestros recursos disponibles.

Lo ideal, es monitorizar esos valores en máquinas virtuales con usuarios y sin usuarios para ajustar a necesidad.

¿Qué problemas nos podemos encontrar con la memoria dinámica?

Como hemos dicho, puede pasar que un sistema operativo no sea compatible y no podamos hacer gran cosa. Otro problema, puede venir derivado de un problema con aplicaciones que gestionen mal la memoria. Imaginaros un antivirus, que muchas veces son peor que un virus, que tenga una mala gestión de los procesos. Es posible, que nos provoque un aumento de memoria en el sistema, y que eso haga que la memoria no pueda liberarse a valores mínimos. Como todo, se soluciona revisando el sistema operativo y los procesos que corren en él.

En resumen, la memoria dinámica ajusta la cantidad de memoria disponible para una máquina virtual, en función de la demanda de memoria, lo que ayuda a usar los recursos de memoria de manera más eficiente. En definitiva, nos permite utilizar de una forma más eficiente el hardware disponible.

Espero os sea interesante…

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

La entrada Memoria Dinamica Hyper-V se publicó primero en Blog VMware y Citrix.


Viewing all articles
Browse latest Browse all 679