Administración dinámica de recursos

El hipervisor de Google asigna de forma dinámica la CPU virtual y la memoria de E2 a la CPU física y la memoria a pedido. Esta administración dinámica impulsa la rentabilidad de las VM E2 mediante un mejor uso de los recursos físicos.

En concreto, las CPU virtuales se implementan como subprocesos que se programan para ejecutarse a pedido como cualquier otro subproceso en un host. Cuando la CPU virtual tiene trabajo, se le asigna una CPU física disponible en la que hasta que se vuelva a suspender. De manera similar, la RAM virtual se asigna a las páginas host físicas a través de tablas de páginas que se propagan cuando se accede por primera vez a una página física del invitado. Este mapeo permanecerá fijo hasta que la VM indique que ya no se necesita una página física para invitados.

Las VM E2 se enfocan en el rendimiento y están diseñadas para proteger las cargas de trabajo de los problemas asociados a la suscripción excesiva gracias al programador de CPU personalizado de Google y la migración en vivo optimizada para el rendimiento. Las VM E2, incluidas las instancias con núcleo compartido, admiten la administración dinámica de recursos en instancias de hasta 32 CPU virtuales y 128 GB de memoria.

Dispositivo de memoria Virtio

Las instancias de VM E2 de Compute Engine que se basan en una imagen pública tienen un dispositivo de globo de memoria Virtio, que supervisa cuánta memoria usa el sistema operativo invitado. El sistema operativo invitado comunica su memoria disponible al sistema host. El host reasigna las memorias no utilizadas a otros procesos según demanda y, por lo tanto, usa la memoria de manera más eficaz. Compute Engine recopila y utiliza estos datos para hacer recomendaciones de ajuste de tamaño más precisas.

Verifica la instalación del controlador

Para comprobar si el controlador del dispositivo de globo de memoria Virtio está instalado y cargado en tu imagen, ejecuta el comando que se indica a continuación.

Linux

La mayoría de las distribuciones de Linux incluyen el controlador del dispositivo de globo de memoria Virtio. Para verificar que el controlador esté instalado y cargado en tu imagen, ejecuta el siguiente comando:

sudo modinfo virtio_balloon > /dev/null && echo Balloon driver is \
installed || echo Balloon driver is not installed; sudo lsmod | grep \
virtio_balloon > /dev/null && echo Balloon driver is loaded || echo \
Balloon driver is not loaded

En los kernels de Linux anteriores a la versión 5.2, el sistema de memoria de Linux a veces evita por error asignaciones grandes cuando el dispositivo de globo está presente. Esto rara vez es un problema en la práctica, pero recomendamos cambiar la configuración de contabilidad de exceso de compromiso de memoria virtual a 1 para evitar que ocurra el problema. Este cambio se hace de forma predeterminada en todas las imágenes proporcionadas por Google que se publican desde el 9 de febrero de 2021.

Para corregir la configuración, ejecuta el siguiente comando:

sudo /sbin/sysctl -w vm.overcommit_memory=1

Esto cambia la configuración de 0 a 1.

Para conservar este cambio en los reinicios, agrega el siguiente comando:

vm.overcommit_memory=1
al archivo /etc/sysctl.conf.

Windows

Las imágenes de Windows de Compute Engine incluyen el dispositivo de globo de Virtio. Sin embargo, las imágenes personalizadas de Windows no lo hacen. Para verificar si tu imagen de Windows tiene instalado el controlador, ejecuta el siguiente comando:

googet verify google-compute-engine-driver-balloon

Inhabilita el dispositivo de globo de memoria de Virtio

Para inhabilitar el dispositivo de globo de memoria de Virtio, inhabilita el controlador del dispositivo. Después de inhabilitar el dispositivo, seguirás recibiendo recomendaciones de reducción de tamaño. Sin embargo, es posible que no sean tan precisas.

Linux

Para inhabilitar el dispositivo en Linux, ejecuta el siguiente comando:

sudo rmmod virtio_balloon

Puedes agregar este comando a la secuencia de comandos de inicio de la VM para inhabilitar el dispositivo automáticamente cuando se inicie la VM.

Windows

Para inhabilitar el dispositivo en Windows, ejecuta el siguiente comando:

googet -noconfirm remove google-compute-engine-driver-balloon

Puedes colocar este comando en la secuencia de comandos de inicio de la VM para inhabilitar automáticamente el dispositivo cuando se inicie la VM.

¿Qué sigue?