Citrix Hypervisor

Memoria de VM

Cuando crea una VM, se asigna una cantidad fija de memoria a la VM. Puede usar 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 memoria en su ficha Memoria. Para obtener más información, consulte la documentación de XenCenter.

El control dinámico de memoria (DMC) proporciona los siguientes beneficios:

  • Puede agregar o eliminar memoria sin reiniciar las VM, lo que proporciona una experiencia perfecta para el usuario.

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

¿Qué es el control dinámico de memoria (DMC)?

Citrix Hypervisor DMC funciona ajustando automáticamente la memoria de las VM en ejecución, manteniendo la cantidad de memoria asignada a cada VM entre los valores de memoria mínimos y máximos especificados, lo que garantiza el rendimiento y permite una mayor densidad de VM 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, modifique la asignación de memoria de cada VM y, a continuación, reinicie la VM. Cuando se usa DMC, Citrix Hypervisor intenta recuperar memoria reduciendo automáticamente la asignación de memoria actual de las VM en ejecución dentro de sus rangos de memoria definidos. Citrix Hypervisor intenta recuperar memoria incluso cuando el servidor está lleno.

Notas:

  • El control de memoria dinámico está obsoleto en Citrix Hypervisor 8.1 y se eliminará en una versión futura.

  • El control dinámico de memoria no se admite con 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/eliminar memoria de la VM sin necesidad de reiniciar. Cuando se ejecuta una máquina virtual, el administrador puede ajustar el rango dinámico. Citrix Hypervisor siempre garantiza mantener la cantidad de memoria asignada a la VM dentro del rango dinámico. Por lo tanto, ajustarlo mientras la VM está en ejecución puede provocar que Citrix Hypervisor ajuste la cantidad de memoria asignada a la VM. El caso más extremo es cuando el administrador establece el mínimo y máximo dinámico en el mismo valor, lo que obliga a Citrix Hypervisor a garantizar que esta cantidad de memoria se asigne 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 requerida se obtiene al comprimir proporcionalmente las VM en ejecución existentes dentro de sus rangos dinámicos predefinidos

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

  • 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 1024 MB, le da a la máquina virtual un rango de memoria dinámica (DMR) de 512 a 1024 MB, dentro del cual funciona. Citrix Hypervisor garantiza asignar siempre la memoria de cada VM dentro de su DMR especificado cuando se usa DMC.

El concepto de rango estático

Muchos sistemas operativos compatibles con Citrix Hypervisor no “comprenden” completamente la noción de agregar o eliminar memoria dinámicamente. Como resultado, Citrix Hypervisor debe declarar la cantidad máxima de memoria que se le pide a una VM que consuma en el momento en que se reinicia. La declaración de la cantidad máxima de memoria permite que el sistema operativo invitado ajuste el tamaño de sus tablas de páginas y otras estructuras de administración de memoria en consecuencia. Esto introduce el concepto de un rango de memoria estática en Citrix Hypervisor. El rango de memoria estática no se puede ajustar cuando la VM está en ejecución. Para un arranque en particular, el rango dinámico está restringido para que siempre esté 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 cantidad de memoria más baja que el sistema operativo puede ejecutar con Citrix Hypervisor.

Nota:

Le recomendamos que no cambie 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 información.

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

Comportamiento DMC

Exprimido automático de máquinas virtuales

  • 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 VM en ejecución dentro de sus rangos dinámicos definidos. De esta manera, las VM en ejecución se comprimen proporcionalmente a la misma distancia entre el mínimo dinámico y el máximo dinámico para todas las VM en el 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 configure DMC, recuerde que asignar solo una pequeña cantidad de memoria a una VM puede afectarla negativamente. Por ejemplo, asignar muy poca memoria:

  • El uso de Dynamic Memory Control para reducir la cantidad de memoria física disponible para una VM puede provocar que se reinicie lentamente. Del mismo modo, si asigna muy poca memoria a una VM, puede iniciarse lentamente.

  • Establecer un mínimo de memoria dinámica para una VM demasiado bajo puede provocar problemas de rendimiento o estabilidad deficientes cuando la VM se inicia.

¿Cómo funciona DMC?

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

  1. Modo de destino: el administrador especifica un destino de memoria para el huésped. Citrix Hypervisor ajusta la asignación de memoria del huésped 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 quiere que use un invitado. Citrix Hypervisor ajusta la asignación de memoria del huésped para cumplir con el objetivo que especifique.

  2. Modo de rango dinámico: el administrador especifica un rango de memoria dinámica para el huésped. 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 quiera 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.

Limitaciones 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 orden 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 la memoria de invitados 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. La gama de configuraciones admitidas depende del sistema operativo invitado en uso. Citrix Hypervisor no impide que los administradores configuren invitados para que superen el límite admitido. Sin embargo, se recomienda a los clientes que mantengan las propiedades de la memoria dentro de los límites admitidos para evitar problemas de rendimiento o estabilidad. Para obtener pautas detalladas sobre los límites de memoria mínimo y máximo para cada sistema operativo compatible, consulte Compatibilidad con sistemas operativos invitados.

Advertencia:

Al configurar la memoria de invitado, le 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 en el huésped.

El mínimo dinámico debe ser mayor 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 anima a los administradores a calibrar cuidadosamente los tamaños de sus máquinas virtuales y garantizar que su conjunto de aplicaciones de trabajo funcione de manera confiable con un mínimo dinámico.

comandos de CLI xe

Mostrar las propiedades de memoria estática de una VM

  1. Busque el UUID de la VM requerida:

    xe vm-list
    <!--NeedCopy-->
    
  2. Anote el uuid y, a continuación, ejecute el comando param-name=memory-static

    xe vm-param-get uuid=uuid param-name=memory-static-{min,max}
    <!--NeedCopy-->
    

    Por ejemplo, lo siguiente muestra las propiedades de memoria máxima estática para la máquina virtual con el UUID que comienza en ec77:

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

    El ejemplo muestra que la memoria máxima estática para esta máquina virtual es de 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 descrito anteriormente, pero use el comando param-name=memory-dynamic:

  1. Busque el UUID de la VM requerida:

    xe vm-list
    <!--NeedCopy-->
    
  2. Anote el uuid y, a continuación, ejecute el comando param-name=memory-dynamic:

    xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max}
    <!--NeedCopy-->
    

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

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

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

Actualizar las propiedades de memoria

Advertencia:

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

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

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

xe vm-memory-static-range-set uuid=uuid min=value max=value
<!--NeedCopy-->

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

xe vm-memory-dynamic-range-set \
      uuid=uuid min=value \
      max=value
<!--NeedCopy-->

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

xe vm-memory-target-set target=value vm=vm-name
<!--NeedCopy-->

Actualice todos los límites de memoria (estáticos y dinámicos) de una máquina virtual:

xe vm-memory-limits-set \
      uuid=uuid \
      static-min=value \
      dynamic-min=value \
      dynamic-max=value static-max=value
<!--NeedCopy-->

Notas:

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

Actualizar las 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. Busque el UUID de la VM requerida:

    xe vm-list
    <!--NeedCopy-->
    
  2. Anote el uuid y, a continuación, utilice el comando memory-dynamic-{min,max}=value

    xe vm-param-set uuid=uuid memory-dynamic-{min,max}=value
    <!--NeedCopy-->
    

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

xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB
<!--NeedCopy-->
Memoria de VM