Cgroups Manager (Linux)
Un sitio web en un hosting compartido puede consumir todos los recursos del sistema e interrumpir el funcionamiento de otros sitios web. Esto se conoce como el «noisy neighbor problem».
Plesk Cgroups Manager es una extensión que le ayuda a resolver este problema mediante la gestión del consumo de la CPU, RAM y ancho de banda de escritura y lectura del disco.
Para cada uno de los recursos del sistema, Cgroups Manager le permite:
- Establecer la cantidad máxima del recurso consumida.
- Monitorizar la cantidad del recurso consumida por la suscripción y enviar notificaciones cuando se sobrepase un determinado nivel (umbral).
Puede configurar Cgroups Manager y establecer el límite del recurso consumido en los siguientes niveles:
- A nivel de un plan de servicio, lo que afectará a todas las suscripciones de dicho plan.
- A nivel de una única suscripción.
Nota: si desea usar Cgroups en un servidor Plesk con un kernel personalizado, deberá especificar determinados parámetros cuando se compile el kernel.
Requisitos
Licencia de Plesk
Cgroups Manager está disponible para las siguientes ediciones de Plesk:
- Plesk Web Pro
- Plesk Web Host
Si está usando el plan Web Admin y desea gestionar el consumo de recursos de sus sitios web, considere actualizar a Web Pro y distribuir los sitios web entre varias suscripciones.
Licencia de la extensión
Cgroups Manager es una extensión de pago. Puede comprarla por separado o como parte del Hosting Pack.
SO y sistema init
Cgroups Manager está disponible para los siguientes sistemas operativos:
- Debian 8
- Ubuntu 16.04 y Ubuntu 18.04
- CentOS 7
- Red Hat Enterprise Linux 7
Por omisión, todas estas distribuciones usan el sistema init denominado systemd, imprescindible para Cgroups Manager. Plesk también puede instalarse en Debian con un sistema init alternativo denominado System V. Para examinar el sistema init actual, ejecute cat /proc/1/comm
en el interfaz de línea de comandos.
Nota: Nota: si instala Cgroups Manager en Debian con el sistema V, Plesk lo reemplazará por systemd. Con el fin de que se apliquen los cambios efectuados, una vez completada la instalación deberá reiniciar el sistema de forma manual.
Limitaciones para Debian 8
Por omisión, Cgroups Manager presenta una funcionalidad limitada en Debian 8, cuyo kernel no soporta las limitaciones de uso de recursos de CPU y RAM de Cgroups. Si desea más información sobre Cgroups Manager para Debian 8, haga clic aquí.
Limitaciones para Virtuozzo 6 & 7
En el caso de que Plesk se haya instalado en un contenedor Virtuozzo 6, sólo podrá gestionar la RAM. Si Plesk se ha instalado en un contenedor Virtuozzo 7, se podrá gestionar la RAM y la CPU, pero no la E/S de disco. Si de lo contrario Plesk se ha instalado en una máquina virtual Virtuozzo, no se verá afectado por estas limitaciones.
If your system does not meet some requirements, you can migrate Plesk to one that meets them.
Instalación
Para habilitar Cgroups Manager:
-
Instale el componente Resource Controller (Cgroups) mediante Plesk Installer:
-
Vaya a Herramientas y configuración
-
Haga clic en el enlace Actualizaciones
-
Haga clic en el enlace Adición y eliminación de componentes
-
Seleccione «Resource Controller (Cgroups)» y haga clic en Continuar.
Nota: Nota: si la lista de componentes disponibles no incluye el componente requerido, compruebe que su sistema cumple los requisitos.
-
-
Inicie el componente:
- Vaya a Herramientas y configuración
- Haga clic en el enlace Administración de servicios
- Inicie el servicio «Resource Controller (Cgroups)».
Configuración de Cgroups Manager
Nota: Atención: de no configurar Cgroups Manager correctamente, los sitios web alojados pueden funcionar más lentamente o incluso dejar de funcionar. Antes de efectuar cualquier cambio, es imprescindible leer y entender las instrucciones proporcionadas en este tema.
Puede configurar Cgroups Manager en los siguientes niveles:
- A nivel de un plan de servicio, lo que afectará a todas las suscripciones de dicho plan.
- A nivel de una única suscripción.
La configuración a nivel de la suscripción invalida aquella establecida a nivel del plan de servicio. Los planes complementarios no pueden usarse para modificar la configuración de Cgroups Manager.
Una vez haya instalado e iniciado el servicio, dispondrá de las siguientes herramientas de configuración:
Herramienta | Plan de servicio | Suscripción |
---|---|---|
Plesk Panel (usa el modo de visualización de Proveedor de servicios) |
|
|
CLI de Plesk | Use las opciones -cgroups* de la utilidad service_plan . |
Use las opciones -cgroups* de la utilidad subscription_settings . |
API XML de Plesk | Examine la documentación sobre la administración de planes de servicio. | Examine la documentación sobre la administración de suscripciones. |
Limitación del consumo de recursos
Establecimiento de límites
El primer parámetro de configuración disponible para cada recurso gestionado es el valor de límite. Cada recurso gestionado dispone de su propio valor límite. Por omisión, estos valores no se aplican, por lo que los recursos no se limitan.
Las suscripciones pueden compartir parámetros de límite, si bien cada una de ellas tiene su propio límite.
Si se impone un límite para un determinado recurso a una suscripción:
- Cgroups Manager monitoriza todos los procesos propiedad del usuario de sistema de la suscripción. Todos estos procesos no pueden consumir más del límite establecido para cada recurso.
- Si una suscripción alcanza su límite, el sistema operativo efectuará una acción determinada en función del tipo de recurso.
- Una suscripción no puede superar el límite ni en el supuesto caso de que en el servidor aún hayan recursos disponibles del tipo correspondiente (ciclos inactivos de CPU, RAM, etc.).
Si no se impone ningún límite para un determinado recurso a una suscripción:
- Los procesos de una suscripción pueden usar tanta cantidad del recurso como esté disponible.
- El recurso se comparte entre los procesos de todas las suscripciones:
- El tiempo de CPU y el E/S de disco se comparten casi igual.
- La RAM se comparte en función de lo que soliciten los procesos.
En ambos casos, no es posible garantizar que una suscripción recibirá una cantidad mínima del recurso.
Valores de límite permitidos
Los parámetros de límite pueden presentar los siguientes valores:
Parámetro | Medido en | Valores disponibles |
---|---|---|
Límite de CPU | Porcentaje de tiempo de CPU, donde 100 % es un núcleo de CPU usado en su totalidad | No más de 100 % * Número de núcleos de CPU |
Límite de RAM | Bytes | No inferior a 1 MB |
Velocidad (escritura) de entrada de disco | Bytes por segundo | No inferior a 1 MB por segundo |
Velocidad (lectura) de salida de disco | Bytes por segundo | No inferior a 1 MB por segundo |
Si el servidor dispone de múltiples núcleos de CPU, la cantidad de CPU disponible es igual a 100% * el número de núcleos de CPU. Por ejemplo, si su servidor dispone de 4 núcleos de CPU, la cantidad de CPU disponible será de 400%.
¿Cómo gestiona el sistema el consumo de los recursos?
Cuando los procesos de una determinada suscripción usan el valor máximo permitido de un recurso, el sistema operativo efectúa unas acciones determinadas en función del tipo de recurso.
Sobreuso de recurso | Acciones | Impacto |
---|---|---|
CPU, ancho de banda de lectura y escritura del disco | El sistema limita los procesos de esta suscripción para que no se usen más recursos de los establecidos. | Puede que los sitios web correspondientes operen de forma más lenta y tarden más en responder. |
RAM | Cuando los procesos de una determinada suscripción alcanzan el límite de RAM, el sistema elimina el que consume más memoria. | El sitio web correspondiente puede que no esté disponible durante un tiempo y que responda a las peticiones con códigos HTTP 5xx. |
Monitorización y notificaciones sobre el consumo de recursos
Configuración de monitorización y notificaciones
Una vez establecido el límite para un recurso, también puede configurar Plesk para que monitorice el consumo de dicho recurso.
Para activar la monitorización, establezca los siguientes valores:
- Umbral («Notificar al exceder.» en Plesk Panel).
- Periodo.
Para desactivar la monitorización, elimine el valor del umbral correspondiente.
Valores permitidos para la monitorización
Los parámetros de monitorización pueden presentar los siguientes valores:
Parámetro | Medido en | Valores disponibles |
---|---|---|
Límite de CPU | Porcentaje de tiempo de CPU, donde 100 % es un núcleo de CPU usado en su totalidad | No superior al valor límite de CPU |
Límite de RAM | Bytes | No inferior a 1 MB y no superior al valor límite de RAM |
Velocidad (escritura) de entrada de disco | Bytes por segundo | No inferior a 1 MB por segundo y no superior al valor límite de escritura de disco |
Velocidad (lectura) de salida de disco | Bytes por segundo | No inferior a 1 MB por segundo y no superior al valor límite de lectura de disco |
Periodo de comprobación (para cualquier recurso) | Segundos | 300 (5 minutos), 3600 (1 hora) o 86400 (24 horas) |
¿Cómo efectúa el sistema la monitorización?
Cuando activa la monitorización de uno o más recursos, Cgroups Manager empieza a monitorizar su consumo. Si activó la monitorización del recurso a nivel de la suscripción, se monitorizará el uso del recurso para dicha suscripción. De lo contrario, si activó la monitorización del recurso a nivel del plan de servicio, se monitorizará el uso del recurso para todas las suscripciones que se basen en dicho plan de servicio:
- Cada 5 minutos, Cgroups Manager contabiliza el consumo medio de recursos de una suscripción, además de comprobar si este es igual o superior al
umbral
. - Después de cada
periodo
, Cgroups Manager comprueba cuántas veces la suscripción ha excedido elumbral
durante el últimoperiodo
de tiempo.- Si la suscripción ha excedido el
umbral
en todos los intervalos de unperiodo
, Cgroups Manager envía una notificación por email. - Si no sucede más que en un
periodo
, no se envía ninguna notificación adicional.
- Si la suscripción ha excedido el
Ejemplo de monitorización
Este ejemplo le ayudará a entender cómo Cgroups Manager lleva a cabo la monitorización y cómo envía notificaciones.
Existe un plan de suscripción P con la siguiente configuración:
Parámetro | Valor |
---|---|
Límite de CPU | 200% |
Umbral de CPU | 160% |
Periodo de comprobación de CPU | 1 hora |
Tal y como hemos explicado antes, el 100 % significa que un núcleo de CPU es usado en su totalidad.
Existen dos suscripciones bajo el plan: A y B.
La suscripción A presenta una tarea que consume mucha CPU, que se ejecuta cada hora y tarda 10 minutos en completarse. Durante estos 10 minutos, los procesos de la suscripción consumen más del 160 % del tiempo de CPU. El resto del tiempo, la suscripción consume menos del 160 % de tiempo de CPU. Por lo que respecta a las notificaciones, no importa si esta alcanza el valor límite.
El sitio web de la suscripción B presenta una carga elevada. Los procesos de la suscripción siempre consumen más del 160 % de tiempo de CPU.
Cgroups Manager contabiliza el consumo medio para cada intervalo de 5 minutos. Así, al cabo de una hora este obtiene los siguientes resultados:
- La suscripción A excede el umbral en dos intervalos de 12. Cgroups Manager no enviará ninguna notificación.
- La suscripción B ha excedido el umbral en todos los 12 intervalos. Cgroups Manager enviará una notificación, si bien no la repetirá si la carga sigue siendo la misma.
Destinatarios y contenido de las notificaciones
Para seleccionar quién recibirá las notificaciones:
- Vaya a Herramientas y configuración > Notificaciones.
- Seleccione los destinatarios deseados al lado de CPU, RAM y E/S de disco (Cgroups).
El contenido de cada una de las notificaciones se crea a través de una plantilla. Si desea leer y editar la plantilla:
- Vaya a Herramientas y configuración > Notificaciones.
- Haga clic en el botón más a la derecha al lado de CPU, RAM y E/S de disco (Cgroups).
Si desea más información al respecto, consulte la documentación sobre el envío automático de notificaciones.
Restricciones
Algunas incidencias técnicas y de negocio no pueden resolverse mediante la gestión de recursos:
- Aquellos clientes que previamente excedieron el uso de recursos probablemente experimentarán un peor rendimiento.
- Cgroups Manager no contabiliza ni limita recursos para aplicaciones web Ruby, Python y Node.js que usen Phusion Passenger.
Desactivación de Cgroups Manager
Si desea ocultar la funcionalidad Cgroups Manager, añada las siguientes líneas al archivo panel.ini:
[resourceController]
enabled = false