En général, une ressource représente une entité de SE pouvant être liée à des processus. Dans la plupart des cas, une ressource désigne les objets créés par un sous-système de noyau offrant une possibilité de partitionnement. Une ressource peut également être considérée comme un aspect du système informatique pouvant être manipulé afin de modifier le comportement d'une application. Les ressources peuvent être de la mémoire physique, des CPU ou de la bande passante du réseau.
Le gestionnaire de conteneurs fonctionne conjointement aux utilitaires de gestion des ressources dans Solaris 8, Solaris 9 et Solaris 10. Dans Solaris 8, la gestion des ressources est assurée par Solaris Resource Manager 1.3, chaque service étant représenté par un lnode. L'lnode est utilisé pour enregistrer les règles d'allocation des ressources et les données de variation d'utilisation de celles-ci. Les lnodes correspondent aux ID utilisateur UNIX. Par défaut, un ID peut représenter des utilisateurs et des applications. Pour plus d'informations sur les lnodes et la gestion des ressources, reportez-vous à la section Présentation du noeud limite (Inode) du Guide d'administration du système Solaris Resource Manager 1.3.
Dans Solaris 9 et Solaris 10, la gestion des ressources est assurée par Resource Manager. Dans cette version, le projet s'apparente à l'lnode. Un projet fournit un identificateur administratif réseau pour tous les travaux associés. Tous les processus exécutés dans un conteneur sont associés à un même identificateur de projet, également appelé ID du projet. Le noyau Solaris contrôle l'utilisation des ressources via l'ID de projet. Les données historiques peuvent être collectées via un processus de comptabilisation détaillée basé sur la même méthode de contrôle. Dans le gestionnaire de conteneurs, le projet représente le conteneur.
Les informations relatives aux processus exécutés dans un conteneur sont fournies par l'IG du gestionnaire de conteneurs. Leur collecte est transparente pour l'utilisateur dans la mesure où celui-ci crée et gère les conteneurs via le logiciel.
Différentes méthodes peuvent être utilisées pour créer les limites des conteneurs. L'une d'entre elles consiste à partitionner le système via l'utilisation de pools de ressources. Une autre méthode définit des limites par projet, via les limites de ressources.
Un pool de ressources, ou pool, est un mécanisme de configuration logicielle de Solaris 9 et Solaris 10 utilisé pour partitionner les ressources d'un hôte. Un ensemble de ressource est un groupe de ressources pouvant être associées à des processus. Les ensembles de mémoire et de processeurs sont des exemples d'ensembles de ressources. Seuls les ensembles de processeurs sont actuellement disponibles dans Solaris 9 et Solaris 10. Un pool relie les différents ensembles de ressources disponibles sur un hôte.
Un pool de ressources peut contenir un ou plusieurs objets. Lorsqu'il ne comporte qu'un seul objet, les ressources associées au pool sont allouées dans leur intégralité à ce projet. Lorsqu'il compte plusieurs objets, les ressources associées au pool sont partagées entre les projets.
Sous Solaris 10, le gestionnaire de conteneurs intègre une fonction appelée "pools de ressources dynamiques". Les pools de ressources dynamiques vous aident à obtenir de meilleures performances en vous permettant d'ajuster l'allocation de ressources de chaque pool en réponse aux événements système et à l'évolution de la charge. Cette fonction est décrite plus en détail à la section Pools de ressources dynamiques .
Lorsque vous utilisez le gestionnaire de conteneurs sur le système d'exploitation Solaris 8, à chaque hôte ne peut être associé qu'un seul pool de ressources. Ce pool est appelé pool_default. Les pools de ressources n'existant pas dans cette version du système d'exploitation, pool_default est créé de façon artificielle. Par convention, toutes les CPU d'un hôte qui utilise Solaris 8 sont considérées comme faisant partie d'un même pool.
Pour plus d'informations sur la gestion des pools de ressources à l'aide du gestionnaire de conteneurs, reportez-vous au Chapitre 5, Gestion des pools de ressources.
Dans le cas où plusieurs projets sont liés à un même projet, vous pouvez définir des contrôles, ou limites, pour le projet. Ces contrôles sont appelés limites de ressources. À titre d'exemple, il peut s'agir de la définition d'une limite minimum de CPU, comme c'est le cas en cas d'utilisation d'un ordonnanceur équitable (FSS). Il peut également s'agir d'un capital de mémoire physique prédéfini, comme c'est le cas avec le démon rcapd. lors de la définition d'une limite minimum de CPU, les cycles de CPU inactives dans un projet peuvent être utilisés par les applications associées aux autres projets.