Gestionnaire Cgroups (Linux)

Un site Web présent sur un hébergement partagé peut consommer toutes les ressources système et nuire aux performances des autres sites Web. C’est ce qu’on appelle le problème du "voisin bruyant".

Le Gestionnaire Cgroups Plesk est une extension qui vous aide à résoudre ce problème en gérant la consommation du CPU, de la RAM et le volume de lecture et écriture du disque.

Pour chaque abonnement et chaque ressource du système, le Gestionnaire Cgroups vous permet de :

  • Configurer la quantité maximum (limite) de la ressource que l'abonnement peut consommer.
  • Surveiller la quantité de ressource que l'abonnement consomme et envoyer des notifications par e-mail lorsqu'il dépasse un certain niveau (seuil).

Dans cette section :

Exigences

Installation

Configurer le gestionnaire Cgroups

Limiter la consommation des ressources

Surveillance et notifications pour la consommation des ressources

Restrictions

Désactiver le gestionnaire Cgroups

 

Exigences

Licence Plesk

Le Gestionnaire Cgroups est disponible pour les éditions Plesk suivantes :

  • Plesk Web Pro
  • Plesk Web Host

Si vous utilisez le pack Web Admin et souhaitez gérer la consommation des ressources de vos sites Web, vous devez envisager une mise à niveau vers Web Pro et la répartition des sites Web entre plusieurs abonnements.

Licence d’extension

Le Gestionnaire Cgroups est une extension payante. Vous pouvez l'acquérir individuellement ou via le pack d'hébergement.

Système d’exploitation et système init

Le Gestionnaire Cgroups est disponible pour :

  • Debian 8
  • Ubuntu 16.04
  • CentOS 7
  • Red Hat Enterprise Linux 7

Par défaut, toutes ces distributions utilisent le système init appelé systemd, qui est nécessaire pour le Gestionnaire Cgroups. Cela dit, Plesk peut aussi être installé sur Debian avec un autre système init appelé System V. Pour vérifier le système init actuel, exécutez cat /proc/1/comm dans l’interface de ligne de commande.

Remarque : si vous installez le Gestionnaire Cgroups sur Debian avec System V, Plesk le remplacera par systemd. Vous devrez réinitialiser manuellement le système après l’installation pour rendre les modifications effectives.

Restrictions pour Virtuozzo 6 & 7

Plesk sur Virtuozzo 6 peut gérer uniquement la RAM, et Plesk sur Virtuozzo 7 peut gérer la RAM et le CPU, mais pas l’E/S disque.

Si votre système ne répond pas à certaines caractéristiques, vous pouvez migrer Plesk vers un système conforme à ces caractéristiques.

 

Installation

Pour activer le Gestionnaire Cgroups :

  1. Installez la composante Contrôleur de ressources (Cgroups) en utilisant Plesk Installer :
    1. Allez sous Outils & Paramètres
    2. Cliquez sur le lien Mises à jour et à niveau
    3. Cliquez sur le lien Ajouter/Supprimer des composants
    4. Sélectionnez "Contrôleur de ressources (Cgroups)" et cliquez sur Continuer.

      Remarque : si la composante souhaitée manque dans la liste des composantes disponibles, assurez-vous que votre système répond aux exigences.

  2. Démarrez la composante :
    1. Allez sous Outils & Paramètres
    2. Cliquez sur le lien Gestion des services
    3. Démarrez le service "Contrôleur de ressources (Cgroups)".
 

Configurer le gestionnaire Cgroups

Attention : en cas d'installation incorrecte du gestionnaire Cgroups, les sites Web peuvent ralentir, voire devenir indisponibles. Avant de procéder à des modifications, assurez-vous d'avoir lu et compris les instructions de ce chapitre.

Vous pouvez configurer le gestionnaire Cgroups aux niveaux suivants :

  • Pour un pack de services, et par conséquent pour tous les abonnements couverts par ce pack.
  • Pour un abonnement unique.

Les paramètres configurés au niveau de l'abonnement écrasent les paramètres configurés au niveau du pack de services. Vous ne pouvez pas utiliser les packs d'add-ons pour modifier les paramètres du gestionnaire Cgroups.

Une fois que vous avez installé et démarré le service, vous disposez des outils de configuration suivants :

Outil Pack de services Abonnement

Panneau de contrôle Plesk (utiliser la Vue Fournisseur de services)

  1. Allez dans Pack de services > onglet Packs d'hébergement.
  2. Cliquez sur le pack de services pour lequel vous voulez configurer le gestionnaire Cgroups.
  3. Ouvrez l'onglet RAM, CPU, E/S disque
  1. Allez dans Abonnements.
  2. Cliquez sur l'abonnement pour lequel vous voulez configurer le gestionnaire Cgroups.
  3. Cliquez sur Personnaliser > onglet RAM, CPU, E/S disque.

Interface de ligne de commande de Plesk (CLI)

Utilisez les options -cgroups* de l'utilitaire service_plan.

Utilisez les options -cgroups* de l'utilitaire subscription_settings.

API XML de Plesk

Consultez la section Gérer les packs de services.

Consultez la section Gérer les abonnements.

 

Limiter la consommation des ressources

Configuration des limites

Le premier des paramètres disponibles pour chaque ressource gérée est la valeur limite. Chaque ressource gérée a sa propre valeur limite. Par défaut, les valeurs limites ne sont pas définies, c’est-à-dire que les ressources ne sont pas limitées.

Les abonnements peuvent partager des paramètres de limite, mais chacun a sa propre limite.

Si une ressource est limitée pour un abonnement donné :

  • Le Gestionnaire Cgroups surveille tous les processus que possède l’utilisateur système de l’abonnement. Ensemble, ces processus ne peuvent pas consommer plus que la valeur limite de chaque ressource.
  • Si un abonnement atteint sa limite, le système d’exploitation réalise une action spécifique, qui dépend du type de ressource.
  • Un abonnement ne peut pas dépasser la limite même s’il y a des ressources libres du type correspondant disponibles sur le serveur (cycles CPU inactifs, RAM libre, etc.).

Si une ressource n’est pas limitée pour un abonnement donné :

  • Les processus de l’abonnement peuvent utiliser la totalité de ce qui est disponible pour cette ressource.
  • La ressource est partagée entre les processus de tous les abonnements :
    • Le temps du CPU et l’E/S disque sont partagés de façon presque équitable.
    • La RAM est partagée en fonction de ce que demandent les processus.

Dans les deux cas, il n’est pas garanti qu’un abonnement reçoive une quantité minimum disponible de la ressource.

Valeurs de paramètre autorisées pour les limites

Les paramètres de limite peuvent avoir les valeurs suivantes :

Paramètre Mesuré en Valeurs disponibles

Limite CPU

Pourcentage du temps du CPU, où 100% signifie qu’un cœur de CPU est entièrement utilisé

Pas plus de 100% * Nombre de cœurs de CPU

Limite RAM

Octets

Pas plus d’1 Mo

Vitesse d'entrée (écriture) disque

Octets par seconde

Pas plus d’1 Mo par seconde

Vitesse de sortie (lecture) disque

Octets par seconde

Pas plus d’1 Mo par seconde

Comment le système gère la consommation des ressources

Lorsque les processus d’un abonnement spécifique utilisent la valeur maximum autorisée pour une ressource, le système d’exploitation réalise certaines actions, en fonction du type de ressource.

Ressource sur-utilisée Actions Impact

CPU, volume de lecture et écriture du disque

Le système limite les processus de cet abonnement pour qu’ils n’utilisent pas plus de ressources que la limite ne l’autorise.

Les sites Web correspondants sont susceptibles de fonctionner plus lentement et avoir un délai de réponse plus élevé.

RAM

Lorsque les processus d'un abonnement spécifique atteignent la limite RAM, le système arrête ceux qui consomment le plus de mémoire.

Le site Web correspondant peut être indisponible pour un certain temps et répondre aux requêtes par des codes HTTP 5xx.

 

Surveillance et notifications pour la consommation des ressources

Configuration de la surveillance et des notifications

Dès que vous avez défini la limite pour une ressource, vous pouvez aussi configurer Plesk pour surveiller la consommation de cette ressource.

Pour activer la surveillance, paramétrez les valeurs suivantes :

  • Seuil ("Notifier en cas de dépassement." dans Plesk Panel).
  • Période.

Pour désactiver la surveillance, supprimez la valeur-seuil correspondante.

Valeurs de paramètre autorisées pour la surveillance

Les paramètres de surveillance peuvent avoir les valeurs suivantes :

Paramètre Mesuré en Valeurs disponibles

Limite CPU

Pourcentage du temps du CPU, où 100% signifie qu’un cœur de CPU est entièrement utilisé

Pas plus que la valeur limite du CPU

Limite RAM

Octets

Pas moins d'un 1 Mo et pas plus que la valeur limite de la RAM

Vitesse d'entrée (écriture) disque

Octets par seconde

Pas moins d'un 1 Mo par seconde et pas plus que la valeur limite d'écriture sur le disque

Vitesse de sortie (lecture) disque

Octets par seconde

Pas moins d'un 1 Mo par seconde et pas plus que la valeur limite de lecture du disque

Période de contrôle (pour n’importe quelle ressource)

Secondes

300 (5 minutes), 3600 (1 heure) ou 86400 (24 heures)

Comment le système réalise la surveillance

Lorsque vous activez la surveillance des ressources pour une ou plusieurs ressources, le Gestionnaire Cgroups démarre la surveillance de leurs consommations. Si vous avez activé la surveillance des ressources au niveau de l’abonnement, l’utilisation des ressources sera surveillée pour cet abonnement. Si vous avez activé la surveillance des ressources au niveau du pack de services, l’utilisation des ressources pour tous les abonnements basés sur ce pack de services sera surveillée à la place :

  1. Toutes les 5 minutes, le Gestionnaire Cgroups comptabilise la consommation moyenne des ressources d'un abonnement et vérifie si elle est égale ou supérieure au seuil.
  2. Pendant chaque période, le Gestionnaire Cgroups vérifie combien de fois l’abonnement a dépassé le seuil durant la dernière période de temps.
    • Si l’abonnement a dépassé le seuil pendant tous les intervalles d'une période, le Gestionnaire Cgroups envoie une notification par e-mail.
    • Si cela arrive pour plus d’une période, cela ne génère pas l’envoi de notifications supplémentaires.
Exemple de surveillance

Cet exemple va vous aider à mieux comprendre comment le Gestionnaire Cgroups réalise la surveillance et déclenche les notifications.

Supposons un pack d'abonnement P avec les paramètres suivants :

Paramètre Valeur

Limite CPU

200%

Seuil CPU

160%

Période de contrôle CPU

1 heure

Comme il a été expliqué auparavant, 100% signifie qu’un cœur de CPU est entièrement utilisé.

Ce pack comprend deux abonnements : A et B.

L'abonnement A a une tâche lourde pour le CPU qui tourne toutes les heures et dure environ 10 minutes. Pendant ces 10 minutes, les processus d'abonnement consomment plus de 160 % du temps du CPU. Le reste du temps, l'abonnement consomme moins de 160 % du temps du CPU. Cela ne compte pas pour les notifications s'il atteint la valeur limite.

Le site Web de l’abonnement B est sous une lourde charge. Les processus d'abonnement consomment toujours plus de 160 % du temps du CPU.

Le Gestionnaire Cgroups comptabilise la consommation moyenne pour chaque intervalle de 5 minutes. Donc, à la fin d’une heure, il a les résultats suivants :

  • L'abonnement A a dépassé le seuil pendant deux intervalles sur 12. Le Gestionnaire Cgroups n’enverra pas de notification.
  • L'abonnement B a dépassé le seuil sur la totalité des 12 intervalles. Le Gestionnaire Cgroups va envoyer une notification, mais ne la répétera pas si la charge continue.
Destinataire et contenu des notifications

Pour définir qui recevra les notifications :

  1. Allez dans Outils & Paramètres > Notifications.
  2. Sélectionnez les destinataires voulus à côté de CPU, RAM et E/S Disque (Cgroups).

Le contenu de chaque message de notification est créé à partir d’un modèle. Pour lire et modifier le modèle :

  1. Allez dans Outils & Paramètres > Notifications.
  2. Cliquez sur le bouton le plus à droite à côté de CPU, RAM et E/S Disque (Cgroups).

Pour en savoir plus, lisez la documentation sur les notifications automatiques par mail.

 

Restrictions

Certains problèmes techniques et commerciaux ne peuvent pas être résolus par la gestion des ressources :

  • Les clients qui ont surutilisé les ressources auparavant vont vraisemblablement être soumis aux performances les plus mauvaises.
  • Le Gestionnaire Cgroups ne comptabilise ni ne limite les ressources pour les applications Web Ruby, Python et Node.js utilisant Phusion Passenger.
 

Désactiver le gestionnaire Cgroups

Pour masquer la fonctionnalité du gestionnaire Cgroups, ajoutez ces lignes au fichier panel.ini :

[resourceController]
enabled = false
 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.