Memoria de VM

Cuando crea una máquina virtual, se asigna una cantidad fija de memoria a la máquina virtual. Puede utilizar el Control de memoria dinámica (DMC) para mejorar la utilización de la memoria física en su entorno Citrix Hypervisor. DMC es una función de administración de memoria que permite la reasignación dinámica de memoria entre máquinas virtuales.

XenCenter proporciona una visualización gráfica del uso de la memoria en su ficha Memoria . Para obtener más información, consulte la Ayuda de XenCenter.

El control de memoria dinámica (DMC) proporciona las siguientes ventajas:

  • Puede agregar o eliminar memoria sin reiniciar las máquinas virtuales, lo que proporciona una experiencia perfecta al usuario.

  • Cuando los servidores están llenos, DMC le permite iniciar más máquinas virtuales en estos servidores, reduciendo proporcionalmente la cantidad de memoria asignada a las máquinas virtuales en ejecución.

¿Qué es el Control de Memoria Dinámica (DMC)?

Citrix Hypervisor DMC funciona ajustando automáticamente la memoria de las máquinas virtuales en ejecución, manteniendo la cantidad de memoria asignada a cada máquina virtual entre los valores de memoria mínimos y máximos especificados, garantizando el rendimiento y permitiendo una mayor densidad de máquinas virtuales por servidor.

Sin DMC, cuando un servidor está lleno, al iniciar máquinas virtuales adicionales fallará con errores de «memoria insuficiente». Para reducir la asignación de memoria de VM existente y dejar espacio para más VM, edite la asignación de memoria de cada VM y, a continuación, reinicie la VM. Cuando se utiliza DMC, Citrix Hypervisor intenta recuperar memoria reduciendo automáticamente la asignación de memoria actual de las máquinas virtuales en ejecución dentro de sus rangos de memoria definidos. Citrix Hypervisor intenta recuperar memoria incluso cuando el servidor está lleno.

Nota:

El control dinámico de memoria no es compatible con las máquinas virtuales que tienen una GPU virtual.

El concepto de rango dinámico

Para cada VM, el administrador puede establecer un rango de memoria dinámica. El rango de memoria dinámica es el rango dentro del cual se puede agregar o quitar memoria de la VM sin necesidad de reiniciar. Cuando se está ejecutando una máquina virtual, el administrador puede ajustar el rango dinámico. Citrix Hypervisor siempre garantiza mantener la cantidad de memoria asignada a la máquina virtual dentro del rango dinámico. Por lo tanto, ajustándolo mientras la máquina virtual se está ejecutando puede provocar que Citrix Hypervisor ajuste la cantidad de memoria asignada a la máquina virtual. El caso más extremo es cuando el administrador establece el mínimo o máximo dinámico en el mismo valor, lo que obliga a Citrix Hypervisor a asegurarse de que esta cantidad de memoria se asigna a la VM. Si se requiere que las máquinas virtuales nuevas se inicien en servidores «completos», las máquinas virtuales en ejecución tienen su memoria ‘apretada’ para iniciar otras nuevas. La memoria adicional necesaria se obtiene apretando proporcionalmente las VM en ejecución existentes dentro de sus rangos dinámicos predefinidos

DMC le permite configurar los niveles de memoria mínimos y máximos dinámicos, creando un rango de memoria dinámica (DMR) en el que opera la máquina virtual.

  • Memoria mínima dinámica: límite de memoria inferior que se asigna a la VM.

  • Límite superior dinámico: límite superior de memoria que se asigna a la máquina virtual.

Por ejemplo, si la memoria mínima dinámica se estableció en 512 MB y la memoria máxima dinámica se estableció en 1.024 MB, le da a la máquina virtual un intervalo de memoria dinámica (DMR) de 512 a 1024 MB, dentro del cual opera. Citrix Hypervisor garantiza siempre asignar cada memoria de VM dentro de su DMR especificado al usar DMC.

El concepto de rango estático

Muchos sistemas operativos compatibles con Citrix Hypervisor no entienden completamente la noción de agregar o eliminar memoria dinámicamente. Como resultado, Citrix Hypervisor debe declarar la cantidad máxima de memoria que una máquina virtual debe consumir en el momento en que se reinicia. Declarar la cantidad máxima de memoria permite al sistema operativo invitado dimensionar sus tablas de página y otras estructuras de administración de memoria en consecuencia. Esto introduce el concepto de un rango de memoria estática dentro de Citrix Hypervisor. El rango de memoria estática no se puede ajustar cuando la máquina virtual se está ejecutando. Para un arranque en particular, el rango dinámico está restringido de tal manera que siempre estará contenido dentro de este rango estático. El mínimo estático (el límite inferior del rango estático) protege al administrador y se establece en la menor cantidad de memoria que el sistema operativo puede ejecutar con Citrix Hypervisor.

Nota:

Se recomienda no cambiar el nivel mínimo estático, ya que el nivel mínimo estático se establece en el nivel admitido por sistema operativo. Consulte la tabla de restricciones de memoria para obtener más detalles.

Establecer un nivel máximo estático superior a un máximo dinámico le permite asignar más memoria a una máquina virtual en el futuro sin reiniciar la máquina virtual.

Comportamiento de DMC

Expresión automática de VM

  • Si DMC no está habilitado, cuando los hosts están llenos, los inicios de la nueva máquina virtual fallan con errores de «memoria de memoria».

  • Cuando DMC está habilitado, incluso cuando los hosts están llenos, Citrix Hypervisor intenta recuperar memoria reduciendo la asignación de memoria de las máquinas virtuales en ejecución dentro de sus rangos dinámicos definidos. De esta manera, las máquinas virtuales en ejecución se aprietan proporcionalmente a la misma distancia entre el mínimo dinámico y el máximo dinámico para todas las máquinas virtuales del host

Cuando DMC está habilitado

  • Cuando la memoria del host es abundante: todas las máquinas virtuales en ejecución reciben su nivel de memoria máxima dinámica

  • Cuando la memoria del host es escasa: todas las máquinas virtuales en ejecución reciben su nivel de memoria mínima dinámica.

Cuando esté configurando DMC, recuerde que asignar solo una pequeña cantidad de memoria a una VM puede tener un impacto negativo en ella. Por ejemplo, asignar muy poca memoria:

  • El uso del Control de memoria dinámica para reducir la cantidad de memoria física disponible para una máquina virtual puede provocar que se reinicie lentamente. Del mismo modo, si asigna muy poca memoria a una VM, puede iniciarse lentamente.

  • Establecer el mínimo de memoria dinámica para una máquina virtual demasiado baja puede provocar problemas de rendimiento o estabilidad deficientes cuando se inicia la máquina virtual.

¿Cómo funciona DMC?

Con DMC, es posible operar una máquina virtual invitada en uno de los dos modos:

  1. Modo de destino: El administrador especifica un destino de memoria para el invitado. Citrix Hypervisor ajusta la asignación de memoria del invitado para cumplir con el objetivo. Especificar un destino es útil en entornos de servidores virtuales y en situaciones en las que sabe exactamente cuánta memoria desea que use un invitado. Citrix Hypervisor ajusta la asignación de memoria del invitado para cumplir con el objetivo especificado.

  2. Modo de rango dinámico: El administrador especifica un rango de memoria dinámica para el invitado. Citrix Hypervisor selecciona un destino del rango y ajusta la asignación de memoria del huésped para cumplir con el objetivo. Especificar un rango dinámico es útil en entornos de escritorio virtual y en cualquier situación en la que desee que Citrix Hypervisor reparticione la memoria de host dinámicamente en respuesta a cambios en el número de invitados o cambios en la presión de la memoria del host. Citrix Hypervisor selecciona un destino dentro del rango y ajusta la asignación de memoria del huésped para cumplir con el objetivo.

Nota:

Es posible cambiar entre el modo de destino y el modo de rango dinámico en cualquier momento para cualquier invitado en ejecución. Especifique un nuevo destino o un nuevo rango dinámico, y Citrix Hypervisor se encargará del resto.

Restricciones de memoria

Citrix Hypervisor permite a los administradores utilizar todas las operaciones de control de memoria con cualquier sistema operativo invitado. Sin embargo, Citrix Hypervisor aplica la siguiente restricción de ordenación de propiedades de memoria para todos los invitados:

0 memory-static-min memory-dynamic-min memory-dynamic-max memory-static-max

Citrix Hypervisor permite a los administradores cambiar las propiedades de memoria de invitado a cualquier valor que satisfaga esta restricción, sujeto a comprobaciones de validación. Sin embargo, además de la restricción anterior, solo admitimos ciertas configuraciones de memoria de invitado para cada sistema operativo compatible. El rango de configuraciones admitidas depende del sistema operativo invitado en uso. Citrix Hypervisor no impide que los administradores configuren invitados para superar el límite admitido. Sin embargo, se recomienda a los clientes que mantengan las propiedades de memoria dentro de los límites admitidos para evitar problemas de rendimiento o estabilidad. Para obtener instrucciones detalladas sobre los límites de memoria mínimo y máximo para cada sistema operativo compatible, consulteCompatibilidad con sistemas operativos invitados.

Advertencia:

Al configurar la memoria de invitado, recomendamos NO exceder la cantidad máxima de memoria física direccionable por su sistema operativo. Establecer un máximo de memoria que sea mayor que el límite admitido por el sistema operativo puede provocar problemas de estabilidad dentro de su huésped.

El mínimo dinámico debe ser superior o igual a un cuarto del máximo estático para todos los sistemas operativos compatibles. Reducir el límite inferior por debajo del mínimo dinámico también puede provocar problemas de estabilidad. Se recomienda a los administradores que calibren cuidadosamente los tamaños de sus máquinas virtuales y se aseguren de que su conjunto de aplicaciones funcione de forma fiable al mínimo dinámico.

comandos xe CLI

Mostrar las propiedades de memoria estática de una VM

  1. Encuentre el uuid de la VM requerida:

    xe vm-list
    
  2. Tenga en cuenta el uuid y, a continuación, ejecute el comandoparam-name=memory-static

    xe vm-param-get uuid=uuid param-name=memory-static-{min,max}
    

    Por ejemplo, lo siguiente muestra las propiedades estáticas de memoria máxima para la máquina virtual con el uuid comenzando ec77:

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-static-max;
        268435456
    

    El ejemplo muestra que la memoria máxima estática para esta máquina virtual es 268.435.456 bytes (256 MB).

Mostrar las propiedades de memoria dinámica de una VM

Para mostrar las propiedades de memoria dinámica, siga el procedimiento anterior pero utilice el comandoparam-name=memory-dynamic:

  1. Encuentre el uuid de la VM requerida:

    xe vm-list
    
  2. Tenga en cuenta el uuid y, a continuación, ejecute el comandoparam-name=memory-dynamic:

    xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max}
    

    Por ejemplo, lo siguiente muestra las propiedades de memoria máxima dinámica para la máquina virtual con uuid comenzando ec77

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-dynamic-max;
        134217728
    

    El ejemplo muestra que la memoria máxima dinámica para esta máquina virtual es 134.217.728 bytes (128 MB).

Actualizar propiedades de memoria

Advertencia:

Utilice el orden correcto al establecer los parámetros estáticos/dinámicos mínimo/máximo. Además, no debe invalidar la restricción siguiente:

0 memory-static-min memory-dynamic-min memory-dynamic-max memory-static-max

Actualizar el rango de memoria estática de una máquina virtual:

xe vm-memory-static-range-set uuid=uuid min=valuemax=value

Actualizar el rango de memoria dinámica de una máquina virtual:

xe vm-memory-dynamic-range-set \
      uuid=uuid min=value \
      max=value

Especificar un destino es útil en entornos de servidores virtuales y en cualquier situación en la que sepa exactamente cuánta memoria desea que use un invitado. Citrix Hypervisor ajusta la asignación de memoria del invitado para cumplir con el objetivo especificado. Por ejemplo:

xe vm-target-set target=value vm=vm-name

Actualizar todos los límites de memoria (estática y dinámica) de una máquina virtual:

xe vm-memory-limits-set \
      uuid=uuid \
      static-min=value \
      dynamic-min=value \
      dynamic-max=value static-max=value

Notas:

  • Para asignar una cantidad de memoria específica a una máquina virtual que no cambie, establezca el valor Máximo dinámico y Mínimo dinámico en el mismo valor.
  • No puede aumentar la memoria dinámica de una máquina virtual más allá del máximo estático.
  • Para alterar el máximo estático de una máquina virtual, debe apagar la máquina virtual.

Actualizar propiedades de memoria individuales

Advertencia:

No cambie el nivel mínimo estático, ya que se establece en el nivel admitido por sistema operativo. Para obtener más información, consulte Restricciones de memoria.

Actualice las propiedades de memoria dinámica de una VM.

  1. Encuentre el uuid de la VM requerida:

    xe vm-list
    
  2. Tenga en cuenta el uuid y, a continuación, utilice el comandomemory-dynamic-{min,max}=value

    xe vm-param-set uuid=uuidmemory-dynamic-{min,max}=value
    

En el ejemplo siguiente se cambia el máximo dinámico a 128 MB:

xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB