OpenVZ – Memoria SWAP en VPS

Hoy me han preguntado acerca de la memoria y su uso en OpenVZ. Primero debo decir que no conozco otros sistemas como VMWare o Xen. Los desconozco por completo a día de hoy. Lo que sí sé es que OpenVZ difiere “bastante” de ellos. El tema surgió hablando de la SWAP, un espacio en disco reservado para cuando el sistema operativo se queda sin RAM. Cuando creamos contenedores OpenVZ(debemos pensar en contenedores) asignamos unos recursos concretos. Cuando entramos en la máquina, la SWAP está a 0. ¿Quiere eso decir que no hay una SWAP? Sí y no. No hay una SWAP al estilo tradicional. Es decir, no podemos garantizar por container 1 GB de SWAP. OpenVZ no diferencia entre memoria y swap, todo forma parte de un todo “memoria” a nivel de contenedor. No podemos limitar la swap de un contenedor, sin embargo, podemos limitar la cantidad de memoria que consumirá un contenedor(sea SWAP o no) o garantizar ciertos recursos. Para el contenedor, da igual que tengamos un HN(Hardware Node) de 64 MB de RAM y 6 GB de swap o 6 GB de RAM y 64 MB de SWAP. Para el contenedor es sólo memoria y los valores privvmpages, oomguarpes y vmguarpages no se ven afectados por esto.

Privvmpages: permite el control del total de memoria asignada(utilizada) por aplicaciones. Hay que tener en cuenta que que privvmpages no garantiza al contenedor el total de la cantidad de memoria especificada, ni que los otros contenedores, tendrán la capacidad de utilizar su memoria. El mecanismo más útil para controlar la asignación de memoria es vmguarpages.

Oomguarpages: cantidad de memoria reservada para el contenedor en situaciones de falta de memoria. Si una aplicación empieza a consumir más memoria que la que tiene la máquina, el sistema entra en condición de “sin-memoria”. En ese caso, el sistema operativo comenzará a matar los procesos de los containers, para liberar algo de espacio y prevenir la muerte total del sistema.

Oomguarpages cuenta el total de memoria y espacio swap utilizado por los procesos de un container en concreto. El “barrier” del parámetro oomguarpages es la cantidad de memoria garantizada(en condiciones de “sin-memoria”).

El total de “sin-memoria” garantizado dentro de un contenedor nunca deberá exceder los recursos físicos de la computadora, en caso contrario, no podrá hacer su función, que es la de eliminar procesos de los contenedores para detener un fallo grave del sistema.

Vmguarpages: asignación de memoria garantizada. La cantidad total de memoria garantizada que un contenedor puede asignar es el barrier de vmguarpages, mientras que la cantidad actual de memoria asignada es contado por el parámetro privvmpages.

Si el total de memoria asignada actual no execede el “barrier” de vmguarpages, las asignaciones del contenedor siempre tendrán éxito. Si el total de memoria asignada actual excede del garantizado pero está por debajo de la barrera de privvmpages, dependerá del total de recursos que tenga el sistema.

Comandos relacionados:

# vzmemcheck -vA
# vzcfgvalidate
# free -m
# vzsplit

2 thoughts on “OpenVZ – Memoria SWAP en VPS

  1. Marcelo says:

    Al instalar Oracle 10gR3 solicita espacio Swap como requerimiento, sin embargo a verificar el espacio Swap antes de la instalacion indica 0k, que puedo hacer para asegurar una buena instalacion?

  2. Rubén Ortiz says:

    No he tocado mucho Oracle pero, si buscas información sobre ratio RAM = SWAP hay muchas teorías y información disponible. Por lo que yo se, habilitar SWAP no perjudica el rendimiento del sistema, de hecho es un recurso más del sistema operativo. Lo bueno es no tener que utilizar SWAP nunca pero llegados al caso, mejor que esté.

    Saludos.

Leave a Reply

Your email address will not be published. Required fields are marked *