Guide d'administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris

Présentation de la gestion des ressources

Les environnements informatiques modernes se doivent de répondre avec un maximum de souplesse aux charges de travail variables qui résultent des différentes applications sur un système. Une charge de travail correspond à la somme de tous les processus mis en jeu par une application ou un groupe d'applications. En l'absence de fonctionnalités de gestion des ressources, le système d'exploitation Solaris répond aux charges de travail en adaptant de façon dynamique son activité aux nouvelles requêtes des applications. Ce comportement par défaut implique généralement un accès équitable aux ressources pour toutes les activités du système. Les fonctions de gestion des ressources Solaris permettent d'apporter une réponse personnelle à chaque charge de travail. Vous pouvez :

La gestion des ressourcesest l'ensemble des moyens permettant d'optimiser les performances des charges de travail et de contrôler la façon dont les ressources sont exploitées. Elle est mise en œuvre par le biais de divers algorithmes. Ces algorithmes traitent les séries de requêtes de capacité envoyées par une application au cours de son exécution.

Les utilitaires de gestion des ressources permettent d'influer sur le comportement par défaut du système d'exploitation en matière de charges de travail. Le terme comportement représente l'ensemble des décisions prises par les algorithmes du système d'exploitation pour faire face aux demandes de ressources émanant d'une application. Les utilitaires de gestion des ressources permettent de :

La mise en œuvre d'une configuration système fonctionnant sur le principe de gestion des ressources offre plusieurs avantages. Vous pouvez :

Pour planifier une configuration de ce type, il est nécessaire de prendre en compte plusieurs facteurs clés :

Après avoir identifié les charges de travail qui coopèrent et celles qui sont en conflit, vous pouvez créer une configuration des ressources qui présente le meilleur compromis entre les objectifs de service de l'entreprise et les limites de capacité du système.

Dans la pratique, la gestion des ressources du système Solaris est fondée sur des mécanismes de contrôle, des mécanismes de notification et des mécanismes de surveillance. Il a fallu, dans la plupart des cas, apporter des améliorations aux mécanismes existants, notamment au système de fichiers proc(4), aux jeux de processeurs et aux classes de programmation. Dans les autres cas, les mécanismes sont propres à la gestion des ressources. Vous trouverez une description détaillée à ce sujet dans les chapitres suivants.

Classifications des ressources

Ce terme désigne un aspect du système informatique pouvant être manipulé afin de modifier le comportement d'une application. Autrement dit, une ressource est une capacité demandée de façon implicite ou explicite par une application. Si la capacité est refusée ou fait l'objet d'une restriction, l'exécution d'une application robuste prendra plus de temps.

La classification des ressources, à l'inverse de l'identification des ressources, peut obéir à certaines règles : implicites ou explicites, dépendantes ou non du facteur temps (temps d'utilisation de la CPU par opposition aux parts de CPU allouées), etc.

En règle générale, la gestion des ressources basée sur l'ordonnanceur s'applique aux ressources que l'application peut demander de façon implicite. Pour continuer à fonctionner, par exemple, une application envoie une requête implicite afin de bénéficier de temps de CPU supplémentaire. Pour écrire les données dans un socket de réseau, une application demande de façon implicite une bande passante. Les contraintes peuvent s'appliquer à l'utilisation totale cumulée d'une ressource demandée de façon implicite.

Des interfaces supplémentaires peuvent être présentées pour permettre une négociation explicite de la bande passante ou des niveaux de service de la CPU. Les ressources faisant l'objet d'une requête explicite (demande de thread supplémentaire, par exemple), peuvent être gérées au moyen de contraintes.

Mécanismes de contrôle de la gestion des ressources

Les mécanismes de contrainte, de programmation et de partitionnement sont les trois types de mécanisme de contrôle disponibles dans le système d'exploitation Solaris.

Mécanismes de contrainte

Les contraintes permettent à l'administrateur ou au développeur d'application de fixer des limites de consommation de ressources spécifiques pour une charge de travail. Lorsque les limites sont connues, la modélisation des scénarios de consommation de ressources est d'autant plus facile. Les limites peuvent également servir à identifier les applications au comportement anormal qui risqueraient de compromettre les performances ou la disponibilité du système par des demandes de ressources non régulées.

Les contraintes représentent des complications pour l'application. Il est possible de changer la relation entre l'application et le système jusqu'au point où l'application ne fonctionne plus. Pour éviter de prendre un risque trop important, le mieux est de réduire progressivement les contraintes qui pèsent sur les applications dont le comportement en matière d'utilisation des ressources est incertain. La fonctionnalité de contrôle des ressources dont il est question au Chapitre 6Contrôles des ressources (présentation) offre un mécanisme de contrainte. Il est possible de tenir compte de ces contraintes lors du développement de nouvelles applications, mais ce n'est pas nécessairement la préoccupation principale de tous les développeurs.

Mécanismes de programmation

Le terme programmation désigne la série de choix effectués à intervalles spécifiques en terme d'allocation des ressources. Les décisions sont basées sur un algorithme prévisible. Une application n'ayant pas besoin de son allocation actuelle laisse les ressources à la disposition d'une autre application. Une gestion programmée des ressources permet de faire le meilleur usage possible d'une configuration sous-utilisée, tout en permettant des allocations contrôlées dans un scénario exigeant un engagement important ou surévalué. L'algorithme sous-jacent définit le mode d'interprétation du terme « contrôlé ». Dans certains cas, l'algorithme de programmation peut garantir que toutes les applications ont accès à la ressource. L'ordonnanceur FSS décrit au Chapitre 8Ordonnanceur FSS (présentation) gère de cette manière l'accès des applications aux ressources de la CPU.

Mécanismes de partitionnement

Le partitionnement sert à lier une charge de travail à un sous-ensemble des ressources disponibles du système. Cette liaison vous assure qu'une quantité de ressources connue est toujours réservée à la charge de travail. La fonction de pool de ressources décrite au Chapitre 12Pools de ressources (présentation) permet justement de restreindre les charges de travail à des sous-ensembles spécifiques de la machine.

Les configurations tirant parti du partitionnement peuvent éviter un surengagement à l'échelle du système. Vous risquez toutefois de ne plus atteindre les seuils optimaux d'utilisations. Il faut savoir qu'un groupe réservé de ressources, comme des processeurs, n'est pas exploitable par une autre charge de travail lorsque la charge de travail à laquelle elles sont liées est inactive.

Configuration de la gestion des ressources

Il est possible d'intégrer des parties de la configuration de la gestion des ressources dans un service de noms du réseau. L'administrateur sera ainsi capable d'appliquer les contraintes de gestion des ressources à un ensemble de machines, et non pas sur une base individuelle. Les opérations correspondantes peuvent partager le même identificateur et l'utilisation cumulée des ressources peut être ventilée à partir des données de comptabilisation.

La configuration de la gestion des ressources et les identificateurs orientés charges de travail sont traités en détail dans le Chapitre 2Projets et tâches (présentation). L'utilitaire de comptabilisation étendue chargé de lier ces identificateurs à l'utilisation des ressources par l'application est décrit dans le Chapitre 4Comptabilisation étendue (présentation).

Interaction avec Solaris Zones

Il est possible d'utiliser les fonctions de gestion des ressources en combinaison avec Solaris Zones afin de peaufiner l'environnement applicatif. Les interactions entre ces fonctions et les zones sont décrites dans les sections correspondantes de ce manuel.