resumen: A website on a shared hosting can consume all system resources and disrupt the performance of other websites. This issue is known as the «noisy neighbor problem». Plesk Cgroups Manager is an extension that helps you address this issue by managing the consumption of the CPU, RAM, and disk read and write bandwidth by customers.

In this topic, you will learn how to install and configure the Plesk Cgroups Manager extension, and also how to use it to monitor and control resource consumption by customers.

Note: This issue only affects Plesk servers used for shared hosting. If you are running a Plesk Web Admin server, this topic is unlikely to be of interest to you.

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.

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.

Limitaciones

  • Cgroups Manager no puede limitar los recursos extensiones de Plesk y consumo de servicios instalados manualmente y personalizados. Esto es válido para todas las extensiones de Plesk: LiteSpeed no es ninguna excepción.
  • Cgroups Manager en un contenedor Virtuozzo 7 puede gestionar RAM y CPU, si bien no el E/S de disco. Cgroups Manager en una máquina virtual Virtuozzo no presenta esta limitación. Para usar Cgroups Manager sin limitación, migre su Plesk de un contenedor Virtuozzo 7 a otro SO.

Instalación

Para habilitar Cgroups Manager:

  1. Instale el componente Resource Controller (Cgroups) mediante Plesk Installer:

    1. Go to Tools & Settings > Updates (under «Plesk») > Add/Remove Components.

    2. Seleccione «Resource Controller (Cgroups)» y haga clic en Continuar.

      Nota: Si el componente requerido no está presente en la lista de componentes disponibles, compruebe que su sistema cumple los requisitos.

  2. Inicie el componente:

    1. Vaya a Herramientas y configuración
    2. Click Services Management (under «Server Management»)
    3. Start the «Resource Controller (Cgroups)» service.

Configuración de Cgroups Manager

Prudencia: Una configuración incorrecta de Cgroups Manager puede ocasionar que los sitios web alojados funcionen más lentamente o incluso que no estén disponibles. Compruebe que ha leído y entendido las instrucciones detalladas en este tema antes de efectuar cualquier cambio.

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)
  1. Vaya a Planes de servicio.
  2. Haga clic en el plan de servicio para el que desea configurar Cgroups Manager.
  3. Abra la pestaña «RAM, CPU, E/S disco».
  1. Vaya a Suscripciones.
  2. Haga clic en la suscripción para la que desea configurar Cgroups Manager.
  3. Haga clic en Personalizar y abra la pestaña «RAM, CPU, E/S disco».
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

If the server has multiple CPU cores, the available CPU amount is equal to 100% * the number of CPU cores. For example, if your server has two CPU cores, the available CPU amount is 200%.

image limit cpu

¿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:

  1. 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.
  2. Después de cada periodo, Cgroups Manager comprueba cuántas veces la suscripción ha excedido el umbral durante el último periodo de tiempo.
    • Si la suscripción ha excedido el umbral en todos los intervalos de un periodo, 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.

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:

  1. Vaya a Herramientas y configuración > Notificaciones (debajo de «Plesk»)..
  2. 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:

  1. Vaya a Herramientas y configuración > Notificaciones (debajo de «Plesk»)..
  2. 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.

Integración de Cgroups Manager con la extensión Monitoring

Puede integrar Cgroups Manager con la extensión Monitoring. De esta forma, los clientes ven cuántos recursos consumen sus suscripciones y el administrador de Plesk puede ver y comparar el uso de recursos entre un máximo de diez suscripciones.

Descubra cómo integrar Cgroups Manager con la extensión Monitoring.

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