Article ID: 112740, created on Jan 16, 2015, last review on Jan 16, 2015

  • Applies to:
  • Virtuozzo
  • Virtuozzo containers for Linux
  • Virtuozzo hypervisor

Informations générales

Il existe plusieurs schémas de gestion de ressources dans les produits Parallels Virtuozzo Containers (PVC) pour Linux, Parallels Server Bare Metal (PSBM) et Parallels Cloud Server (PCS). Cet article vous aidera à vous faire simplement une idée générale pour chaque schéma et à sélectionner la version du produit appropriée qui répond à vos besoins.

Avant de poursuivre votre lecture, nous vous recommandons de noter les définitions suivantes :

Allocation de mémoire : processus qui consiste à réserver de la mémoire virtuelle à l'aide d'outils standards comme malloc(3).

Consommation (ou utilisation) de mémoire : processus qui consiste à stocker des données au sein de la mémoire allouée au préalable.

Généralement, toute la mémoire allouée n'est pas utilisée. C'est pourquoi, il est possible d'allouer plus de mémoire qu'il n'y a de mémoire disponible sur la machine.

Parallels Virtuozzo Containers pour Linux, Parallels Server Bare Metal et Parallels Cloud Server vous permettent de gérer l'allocation et la consommation de la mémoire.

Lorsque la limite totale de consommation de mémoire pour tous les conteneurs est supérieure au volume de mémoire physique disponible (RAM+swap) on parle de "sur-utilisation". (sur-consommation)

Nous vous recommandons de définir la limite de consommation de la mémoire de sorte que la consommation totale de la mémoire ne dépasse pas la mémoire physique disponible.

Depuis Parallels Virtuozzo Containers pour Linux 4.7, Parallels Server 5 Bare Metal et Parallels Cloud Server 6.0, il existe un paramètre de configuration des conteneurs appelé VM_OVERCOMMIT. Ce paramètre indique les différences réelles entre le volume de mémoire utilisable pour l'allocation et le volume de mémoire utilisable pour la consommation.

Les versions antérieures ne comportaient pas de fonction similaire permettant de mesurer les limites de l'allocation et de la consommation de mémoire.

Ci-après, overcommit signifie la différence entre la limite de l'allocation de mémoire et la limite de consommation de mémoire.

Systèmes de gestion de mémoire

  • User Beancounters (UBC)

    Le système d'origine de gestion des ressources introduit par Parallels Virtuozzo Containers et OpenVZ était UBC. Il permet d'affiner de manière granulaire les limites et garanties de consommation et d'allocation de ressources du conteneur.

    Principal avantage : la possibilité d'ajuster de manière granulaire un conteneur aux besoins d'un jeu d'applications spécifique installé dans le conteneur.

    Principal inconvénient : il agit au nom du kernel Linux et n'est pas intuitif pour un utilisateur. De plus, il est nécessaire de fixer les limites avec précaution pour pouvoir contrôler la mémoire et les autres paramètres de consommation et d'allocation de mémoire.

    Vous trouverez une description de tous les paramètres UBC dans cet article :

    112807 : Ressources UBC dans Parallels Virtuozzo Containers pour Linux.

  • Service Level Management (SLM)

    Le système SLM a été introduit dans Parallels Virtuozzo Containers pour Linux 3.0 (disponible également dans Parallels Server 4 Bare Metal) et est devenu obsolète depuis Parallels Virtuozzo Containers pour Linux 4.7, Parallels Server 5 Bare Metal et Parallels Cloud Server 6.0. Il a été développé pour simplifier la gestion des ressources. Par rapport à UBC, il implique un paramètre unique : slmmemorylimit. Principale différence entre SLM et UBC : dans SLM, il n'y a qu'une limite slmmemorylimit. Cela permet de configurer rapidement les ressources mémoire pour un conteneur. Le paramètre dispose de limites moyennes et instantanées. Leur fonctionnement est totalement différent des paramètres barrier et limit d'UBC.

    Le paramètre average définit la consommation de mémoire autorisée pour un conteneur, presque comme dans le paramètre oomguarpages d'UBC.

    Le paramètre instant définit la consommation de mémoire maximum autorisée pour un conteneur. Le conteneur ne peut pas dépasser la limite autorisée pour la mémoire (toutefois, il peut toujours allouer de la mémoire au-delà de cette limite).

    SLM vérifie la consommation de mémoire sur le serveur toutes les 15 secondes, de manière "cyclique". SLM exécute des actions configurées en fonction de l'état actuel global du node. Si la consommation de mémoire est supérieure à la limite moyenne basée sur les états précédents, le processus du conteneur est stoppé, comme dans un système réel où le noyau requiert de l'espace libre pour ses propres besoins. L'algorithme pour la sélection du processus est identique à celui du mécanisme OOM killer générique de Linux.

    Le conteneur ne peut pas utiliser la mémoire allouée au-dessus de la limite de mémoire instantanée. Lorsque l'utilisation est égale à cette limite et qu'il y a une requête pour obtenir plus de mémoire, SLM termine le ou les processus jusqu'à ce que la consommation soit inférieure à la limite moyenne.

    Il est fortement recommandé d'utiliser la même valeur pour les limites moyennes et instantanées afin d'éviter des arrêts de processus trop fréquents, notamment pour les conteneurs avec des services longs comme un moteur de base de données.

    Principaux avantages du système SLM : la limitation simple des ressources et le fonctionnement avec les ressources UBC pour ajuster un conteneur.

    Principaux inconvénients du système SLM : la difficulté liée à l'interprétation du comportement des limites instantanées et moyennes et l'incapacité à prévoir le comportement un cas d'épuisement des ressources physiques.

  • vSwap

    Après examen des avantages et inconvénients des systèmes SLM et UBC, un nouveau système appelé "vSwap" a été introduit depuis Parallels Virtuozzo Containers pour Linux 4.7, Parallels Server 5 Bare Metal et Parallels Cloud Server 6.0.

    Ce système remplace le système SLM lors des mises à niveaux depuis les versions antérieures de PVCfL.

    Les limites du conteneur SLM et UBC sont lues et converties en limites vSwap internes pendant le démarrage du CT. Aucun changement n'est effectué dans les fichiers config, sauf si les paramètres vSwap sont définis manuellement.

    Le système vSwap permet de configurer rapidement les limites d'échange et de RAM d'un conteneur et de définir la sur-utilisation de la mémoire. D'autres paramètres sont calculés à la volée par Parallels Virtuozzo Containers pour Linux.

    Toutefois, si un ajustement plus granulaire est requis, il est également possible de configurer les paramètres UBC. Les paramètres de configuration du conteneur écrasent ceux calculés à la volée.

Infos supplémentaires

Pour en savoir plus, consultez les ressources suivantes :

1354 : Qu'est-ce que "User Beancounters" ?

112807 : Ressources UBS dans Parallels Virtuozzo Containers pour Linux.

Guide de l'utilisateur de Parallels Virtuozzo Containers 4.7 pour Linux (EN)

Guide de l'administrateur pour la gestion des ressources UBC (EN)

Guide de l'utilisateur de Parallels Virtuozzo Containers 4.6 pour Linux (EN)

Wiki OpenVZ (EN)

0dd5b9380c7d4884d77587f3eb0fa8ef 2897d76d56d2010f4e3a28f864d69223 e8e50b42231236b82df27684e7ec0beb d02f9caf3e11b191a38179103495106f a26b38f94253cdfbf1028d72cf3a498b

Email subscription for changes to this article
Save as PDF