Product SiteDocumentation Site

17.4. Sobreasignando con KVM

El hipervisor KVM admite sobreasignación de CPU y de memoria. La sobrecarga está asignando más CPU virtualizada o memoria que la de los recursos físicos en el sistema, Con sobrecarga de CPU, los servidores subutilizados o escritorios, pueden ejecutarse en menos servidores, ahorrando de este modo, energía y dinero.

Xen support

La sobreasignación de CPU no es compatible con el hipervisor de Xen. La sobrecarga de CPU con el hipervisor Xen puede causar inestabilidad en el sistema y bloquear el host y los huéspedes virtualizados.
Sobreasignación de memoria
La mayoría de los sistemas y aplicaciones no utilizan el 100% de la RAM disponible todo el tiempo. Esta conducta se puede aprovechar con KVM para usar más huéspedes virtualizados que los que están disponibles físicamente.
Con KVM, las máquinas virtuales son procesos de Linux. Los huéspedes en el hipervisor KVM no tienen bloques de RAM físicos asignados, en su lugar, funcionan como procesos. A cada proceso se le asigna memoria cuando lo solicite. KVM utiliza esto para asignar memoria a huéspedes cuando el sistema operativo solicite más o menor memoria. El huésped sólo utiliza un poco más de memoria física que la que parece utilizar el sistema operativo.
Cuando la memoria física está casi completamente utilizada o el proceso está inactivo por algún tiempo, Linux desplaza la memoria del proceso a swap. Swap suele ser una partición en el disco duro o partición de controlador de estado sólido utilizada por Linux para extender la memoria virtual. Swap es significativamente más pequeña que RAM.
Como las máquinas virtuales KVM son procesos de Linux, la memoria utilizada por huéspedes virtualizados se puede poner en swap si el huésped está inactivo o no en uso intensivo. La memoria puede enviarse en el tamaño total del swap y RAM física. Esto puede causar problemas si los huéspedes virtualizados usan la RAM total. Sin suficiente espacio de intercambio (swap) para que los procesos de la máquina virtual sean intercambiados a pdflush se inicia el proceso. pdflush mata los procesos para liberar memoria para que el sistema no se bloquee. pdflush puede destruir huéspedes virtualizados u otros procesos de sistema que pueden causar errores y dejar huéspedes virtualizados que no se pueden arrancar.

Warning

Si no hay suficiente swap disponible, el sistema operativo se cerrará a la fuerza. Esto puede dejar huéspedes inoperables. Evite asignar más memoria de la que está disponible en swap.
La partición swap sirve para intercambiar memoria subutilizada al disco duro con el fin de agilizar el rendimiento de memoria. El tamaño de la partición swap se calcula de la cantidad de RAM y de la relación de sobreasignación. Se recomienda crear una partición más grande si va a sobreasignar memoria con KVM. La relación de sobreasignación recomendada es 50% (0.5). La fórmula utilizada es:
(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size
La Base de Conocimientos de Red Hat tiene un artículo sobre cómo determinar el tamaño de la partición swap de manera segura y eficiente — vaya a la Base de Conocimientos.
Es posible ejecutar una relación de sobreasignación de 10 veces el número de invitados virtualizados en la RAM física. Esto sólo funciona con algunas cargas de aplicaciones (por ejemplo, el escritorio de virtualización con un uso por debajo del 100%). Establecer las relaciones de sobreasignación no es una fórmula difícil, debe probar y personalizar la relación para su entorno.
Sobreasignando CPU virtualizadas
El hipervisor KVM admite sobreasignación de CPU virtualizadas. Las CPU virtualizadas pueden ser sobreasignadas en cuanto a los límites de carga de los huéspedes virtualizados lo permitan. Tenga cuidado al sobreasignar las VCPU ya que las cargas cercanas al 100% pueden producir solicitudes o tiempos de respuesta inutilizables.
La CPU virtualizadas son mejor sobreasignadas cuando cada huésped virtualizado sólo tiene una VCPU. El programador de Linux es muy eficiente con el tipo de carga.KVM debe permitir sin novedad huéspedes con cargas bajo 100% en una relación de 5 VCPU. La sobreasignación de sólo un huésped virtualizado de VCPU no es problema.
No puede sobre asignar huéspedes de multiprocesamiento simétrico en más del número de los núcleos de procesamiento físicos. Por ejemplo, un huésped con cuatro VCPU debe ejecutarse en un huésped con un procesador de doble núcleo. La sobreasignación de huéspedes de multiprocesamiento simétrico en el número de núcleos de procesamiento físico, producirá una degradación importante del rendimiento.
La asignación de VCPU de huéspedes hasta el número de núcleos físicos es apropiada y funciona como se espera. Por ejemplo, la ejecución de huéspedes virtualizados con cuatro VCPU en un host de núcleo cuádruple. Los huéspedes con menos de 100% cargas deben funcionar correctamente en esta configuración.

Siempre haga una prueba primero

No sobreasigne memoria o CPU en un entorno de producción sin pruebas exhautivas. Las aplicaciones que utilizan el 100% de recursos de memoria o de procesamiento pueden volverse inestables en entornos sobreasignados. Haga la prueba antes de implementar.