qemu-kvm recuperación de memoria de invitados de bajo uso

qemu-kvm recuperación de memoria de invitados de bajo uso

¿Existe alguna forma de recuperar o evitar el uso de memoria de forma transparente por parte de un invitado qemu-kvm?

Escenario A:

Un invitado usa 8 GB de RAM durante las horas pico, vuelve a usar 4 GB por la noche, pero el invitado aún reclama 8 GB de RAM del anfitrión.

Escenario B:

Un invitado usa 2 GB de RAM, pero tiene 6 GB de RAM en la caché de la página. El invitado reclama 8 GB de RAM del host, pero hasta 6 GB podrían ser RAM que podrían tener más importancia en otro sistema invitado.


Lo primero que pensé sobre el globo fue que el invitado no "vería" el efecto del globo, pero al enviar el "globo 2048", la memoria dentro del invitado en realidad se reduce a ~2 GB.

Respuesta1

puedes encenderglobo automáticoen un invitado libvirt editando el XML:

<memballoon model='virtio'>

El dispositivo de globo de memoria virtual tomaun parámetro autodeflate, que por defecto es off. Configúrelo para onhabilitar la ampliación automática.

<memballoon model='virtio' autodeflate='on'>

Tenga en cuenta que no hay ninguna opción de GUI en virt-manager para habilitar o deshabilitar esta configuración.

Si está llamando a qemu manualmente (guarde su cordura y no lo haga), agréguelo ,automatic=trueal dispositivo de globo, por ejemplo -device virtio-balloon,automatic=true.

El globo automático requiere qemu/kvm 1.3.1 o posterior.

Tenga en cuenta que esto probablemente no resolverá todos sus problemas de contención de memoria; Lo mejor es simplemente tener suficiente RAM para ejecutar todas sus máquinas virtuales.

Respuesta2

cronometra esto en la VM y/o el host de VM todas las noches después de las horas punta:

sincronización; eco 1 > /proc/sys/vm/drop_caches

elimina el caché fs y lo devuelve como memoria disponible al sistema, luego el KVM/hipervisor puede verlo como memoria libre y encontrar otros usos para él.

también funciona muy bien con sistemas acoplables

información relacionada