Memoria de VM

Al crear una máquina virtual, se asigna una cantidad fija de memoria a la máquina virtual. Puede utilizar el control dinámico de memoria (DMC) para mejorar la utilización de la memoria física en su entorno HASH (0x2c1a078). DMC es una función de administración de memoria que permite la reasignación dinámica de memoria entre máquinas virtuales.

HASH (0x2e6c8e8) proporciona una visualización gráfica del uso de memoria en su pestaña Memoria . Para obtener más información, consulte la Ayuda de HASH (0x2e6c8e8).

El control dinámico de memoria (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 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)?

HASH (0x2c1a078) 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, el inicio de máquinas virtuales adicionales falla con errores de “memoria insuficiente”. Para reducir la asignación de memoria de VM existente y dejar espacio para más máquinas virtuales, edite la asignación de memoria de cada máquina virtual y, a continuación, reinicie la máquina virtual. Cuando se utiliza DMC, HASH (0x2c1a078) 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. HASH (0x2c1a078) intenta recuperar memoria incluso cuando el servidor está lleno.

Nota:

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

El concepto de rango dinámico

Para cada máquina virtual, 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/quitar memoria de la máquina virtual sin necesidad de reiniciar. Cuando se está ejecutando una máquina virtual, el administrador puede ajustar el rango dinámico. HASH (0x2c1a078) siempre garantiza mantener la cantidad de memoria asignada a la máquina virtual dentro del rango dinámico. Por lo tanto, si se ajusta mientras la máquina virtual se está ejecutando, HASH (0x2c1a078) ajuste la cantidad de memoria asignada a la máquina virtual. El caso más extremo es cuando el administrador establece el min/max dinámico en el mismo valor, forzando a HASH (0x2c1a078) para asegurarse de que esta cantidad de memoria se asigna a la máquina virtual. Si se requiere que las máquinas virtuales nuevas se inicien en servidores “completos”, las máquinas virtuales en ejecución tienen la memoria “apretada” para iniciar las nuevas. La memoria adicional necesaria se obtiene apretando las máquinas virtuales en ejecución existentes proporcionalmente 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 máquina virtual.

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

  • Límite superior dinámico: límite de memoria superior 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 dará a la máquina virtual un rango de memoria dinámica (DMR) de 512 a 1024 MB, dentro del cual opera. HASH (0x2c1a078) garantiza siempre asignar cada memoria de VM dentro de su DMR especificado cuando se utiliza DMC.

El concepto de rango estático

Muchos sistemas operativos compatibles con HASH (0x2c1a078) no entienden completamente la noción de agregar o eliminar memoria dinámicamente. Como resultado, HASH (0x2c1a078) debe declarar la cantidad máxima de memoria que se pide a una máquina virtual que consuma en el momento en que se reinicia. Declarar la cantidad máxima de memoria permite al sistema operativo invitado dimensionar 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 dentro de HASH (0x2c1a078). El rango de memoria estática no se puede ajustar cuando se está ejecutando la máquina virtual. Para un arranque en particular, el rango dinámico se restringe de tal manera que esté siempre 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 más baja de memoria que el sistema operativo puede ejecutar con HASH (0x2c1a078).

Nota:

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 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 DMC

Expresión automática de VM

  • Si DMC no está habilitado, cuando los hosts están llenos, la nueva máquina virtual comienza con errores de “memoria insuficiente”.

  • Cuando DMC está habilitado, incluso cuando los hosts están llenos, HASH (0x2c1a078) 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 forma, las máquinas virtuales en ejecución se exprimen 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 sólo una pequeña cantidad de memoria a una máquina virtual puede afectarla negativamente. Por ejemplo, asignar muy poca memoria:

  • El uso de Control dinámico de memoria 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 demasiada poca memoria a una máquina virtual, puede comenzar lentamente.

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

¿Cómo funciona DMC?

Utilizando 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. HASH (0x2c1a078) ajusta la asignación de memoria del invitado para cumplir con el objetivo. Especificar un destino resulta útil en entornos de servidores virtuales y en situaciones en las que se sabe exactamente cuánta memoria desea que utilice un invitado. HASH (0x2c1a078) 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. HASH (0x2c1a078) selecciona un destino del rango y ajusta la asignación de memoria del invitado 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 HASH (0x2c1a078) reparticione la memoria del host dinámicamente en respuesta al cambio del número de invitados o al cambio de la presión de la memoria del host. HASH (0x2c1a078) selecciona un destino dentro del rango y ajusta la asignación de memoria del invitado para cumplir con el objetivo.

Nota:

Es posible cambiar entre el modo objetivo y el modo de rango dinámico en cualquier momento para cualquier huésped en ejecución. Especifique un nuevo destino, o un nuevo rango dinámico, y HASH (0x2c1a078) se encargará del resto.

Restricciones de memoria

HASH (0x2c1a078) permite a los administradores utilizar todas las operaciones de control de memoria con cualquier sistema operativo invitado. Sin embargo, HASH (0x2c1a078) 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

HASH (0x2c1a078) 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. La gama de configuraciones admitidas depende del sistema operativo invitado en uso. HASH (0x2c1a078) 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ínima y máxima para cada sistema operativo compatible, consulteSoporte del sistema operativo invitado.

Advertencia:

Al configurar la memoria de invitado, recomendamos que NO exceda 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 invitado.

El mínimo dinámico debe ser mayor o igual a una cuarta parte 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 asegurarse 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 máquina virtual

  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, a continuación se muestran las propiedades de memoria máxima estática para la máquina virtual con el uuid que comienza 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 máquina virtual

Para mostrar las propiedades de memoria dinámica, siga el procedimiento descrito anteriormente, 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 luego ejecute el comandoparam-name=memory-dynamic:

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

    Por ejemplo, a continuación se muestran las propiedades de memoria máxima dinámica para la máquina virtual con uuid que comienza 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 mínimo/máximo estático/dinámico. 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=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 utilice un invitado. HASH (0x2c1a078) 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á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

Notas:

  • Para asignar una cantidad específica de memoria a una máquina virtual que no cambia, 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 tal como 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 máquina virtual.

  1. Encuentre el uuid de la VM requerida:

    xe vm-list
    
  2. Tenga en cuenta el uuid y, a continuación, use 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