Les organisations de technologie de l'information doivent souvent contrôler les coûts et garantir les niveaux de service des applications de l'entreprise. La gestion des ressources permet de diminuer le coût global de propriété ou de contrôler avec plus de précision les utilisateurs et l'utilisation du système, et parfois d'atteindre ces deux objectifs.
En utilisant le logiciel Solaris Resource Manager pour catégoriser et définir les priorités d'utilisation, les administrateurs peuvent employer efficacement la capacité de réserve durant les périodes hors-pointe, éliminant souvent le besoin d'augmenter la puissance de traitement.
En répartissant les charges de travail dans le système, Solaris Resource Manager permet à l'administrateur d'exécuter et de gérer différentes applications dans un même système, plutôt que d'allouer un système entier -et toute sa capacité de pointe- à chaque application. L'approche la plus couramment employée pour assurer un service et un temps de réponse prévisibles consiste à utiliser un système pour chaque fonction. Cette méthode fonctionne, mais la prolifération de systèmes dans le centre informatique est coûteuse et difficile à gérer.
Solaris Resource Manager permet le regroupement de plusieurs applications sur un même serveur UNIX®, afin d'utiliser au maximum toutes les ressources dont on dispose. En même temps, tous les utilisateurs peuvent avoir accès à des ressources proportionnelles à leur niveau de service et à l'importance relative de leur travail.
Le tableau ci-après présente et décrit sommairement les principales caractéristiques de contrôle des ressources système présentées dans ce manuel.
Ressource système | Paramètre de Solaris Resource Manager | Description |
---|---|---|
Parts d'UC | cpu.shares | Temps d'UC alloué à un noeud limite et précisé dans le fichier de base de données des limites à titre de nombre de parts. Solaris Resource Manager attribue toutes les ressources système disponibles. Autrement dit, un noeud limite peut disposer de ressources supérieures à celles requises, le cas échéant. |
Utilisation cumulative d'UC | cpu.accrue | Utilisation cumulative d'UC de tous les noeuds limites du groupe ainsi que du noeud limite actuel. |
Limite de mémoire | memory.limit | Utilisation maximal de la mémoire virtuelle qui est permise à tous les processus reliés à un noeud limite. Cette limite est une valeur fixe qui est précisée dans le fichier de base de données des limites. Si zéro est indiqué, aucune limite n'est imposée. |
Limite de mémoire de processus | memory.plimit | Limite maximale de mémoire virtuelle par processus. Il s'agit d'une valeur fixe qui est précisée dans le fichier de base de données des limites. Si zéro est indiqué, aucune limite n'est imposée. |
Limite de mémoire physique | rss.limit (Solaris 8 uniquement) | Capacité de mémoire physique, exprimée dans des unités spécifiées, appliquée aux collections de processus liées à un noeud limite. Ce doit être un nombre positif. |
Utilisation cumulative de la mémoire | memory.accrue | Ensemble des ressources de mémoire utilisées pendant une période donnée. Cette valeur est indiquée en octets/seconde. |
Nombre de processus | process.limit | Limite le nombre de processus qu'un utilisateur peut exécuter en même temps, en fonction des limites fixes précisées dans le fichier de base de données des limites. |
Nombre de connexions par utilisateur | flag.onelogin flag.nologin | Interdit les connexions ou limite le nombre de sessions de connexion simultanées par utilisateur et/ou par groupe d'ordonnancement, d'après les limites fixes précisées dans le fichier de base de données des limites. Solaris Resource Manager assure le suivi du nombre de connexions à l'aide des registres d'authentification PAM et des entrées utmp(4). Le compteur est incrémenté et décrémenté dynamiquement. |
Temps de connexion | terminal.limit terminal.usage terminal.accrue | Solaris Resource Manager assure dynamiquement le suivi du temps de connexion de l'utilisateur et il compare cette valeur à la limite précisée dans le fichier de base de données des limites par l'administrateur du système ou le chef du groupe. Si la valeur s'approche de la limite indiquée, Solaris Resource Manager envoie des messages d'avertissement au terminal de l'utilisateur. Lorsque la limite est atteinte, l'utilisateur est avisé de la situation puis le système met automatiquement un terme à la session après un court délai de grâce. |
Solaris Resource Manager peut fournir un contrôle efficace des ressources dans diverses situations, y compris le regroupement de serveurs, l'accueil de sites Web pour les fournisseurs de services Internet, le traitement par lot, l'administration de sites à population élevée ou variée et l'établissement de politiques visant à assurer un temps de réponse approprié pour les applications cruciales.
Solaris Resource Manager convient idéalement aux environnements regroupant de multiples applications sur un même serveur. Le coût et la complexité de la gestion de nombreux ordinateurs incitent les gestionnaires de système à regrouper les applications sur des systèmes plus puissants et évolutifs. Avec Solaris Resource Manager, il est facile de réaliser de telles économies d'échelle.
Par exemple, un seul serveur Sun pourrait fournir les services d'applications, de fichiers et d'impression pour des clients hétérogènes, des services de messagerie/courrier, des services Web et des applications de base de données cruciales. Comme les serveurs Sun EnterpriseTM peuvent comporter de 1 à 64 processeurs, un serveur peut être partagé entre plusieurs services ou utilisé par toute l'entreprise. Dans d'autres systèmes regroupés, les environnements de développement, de prototypage et de production sont combinés sur un seul serveur puissant, par exemple un modèle Sun Enterprise 10000 ou Sun Enterprise 6500, plutôt que d'être répartis sur trois serveurs distincts. On peut également combiner des serveurs de base de données et d'applications sur une seule machine, ou encore des banques de données multiples. Quel que soit le type d'application ou la configuration, Solaris Resource Manager vous aide à répartir les ressources système entre tous les utilisateurs, toutes les applications et tous les groupes, en fonction des politiques de votre entreprise. Les applications cruciales sont protégées, car elles reçoivent leur part appropriée des ressources système.
Autrefois, les fournisseurs de services Internet devaient assigner des ordinateurs spécialisés à chaque client, ce qui augmentait considérablement les coûts et la complexité. Avec Solaris Resource Manager, un fournisseur de services Internet peut loger un grand nombre (voire des milliers) de serveurs Web sur une seule machine. Solaris Resource Manager permet aux administrateurs de contrôler la consommation des ressources associée à chaque site Web, en protégeant chacun d'eux contre les excès potentiels des autres. Il empêche également un script d'interface de passerelle commune (CGI) erroné d'épuiser les ressources de l'UC, et les applications des utilisateurs de monopoliser toute la mémoire virtuelle disponible.
Solaris Resource Manager peut servir à éviter que les traitements par lot aient une incidence sur les activités commerciales en cours, ainsi que sur d'autres travaux par lot qui s'exécutent en parallèle.
Solaris Resource Manager peut aider à gérer les ressources d'un système qui comporte une base d'utilisateurs importante et diversifiée, par exemple dans le cas d'un établissement d'enseignement. (D'ailleurs, Solaris Resource Manager a été initialement conçu en tant qu'ordonnanceur de ressources d'UC dans les universités de Sydney et de Nouvelle-Galles du Sud.) Si les charges de travail sont diversifiées, Solaris Resource Manager peut être configuré de manière à favoriser certains utilisateurs. Par exemple, dans les grandes maisons de courtage, les négociants ont occasionnellement besoin d'un accès rapide afin d'effectuer une interrogation ou un calcul. Les autres utilisateurs du système ont toutefois une charge de travail plus uniforme. Si les négociants bénéficient d'une puissance de traitement proportionnellement plus élevée, Solaris Resource Manager fait en sorte qu'ils l'obtiennent.
Solaris Resource Manager permet de gérer la consommation de diverses ressources système importantes telles que le temps de processeur, la mémoire virtuelle, le nombre de processus, le nombre de connexions et le temps de connexion. Le modèle administratif de Solaris Resource Manager augmente la flexibilité en permettant la délégation de privilèges administratifs dans le cadre d'une hiérarchie, ce qui libère le personnel du centre informatique des transactions administratives intra-groupe. De plus, Solaris Resource Manager comporte des mécanismes de collecte de données sur l'utilisation des ressources pouvant servir à la planification de la capacité ou à des fins de contre-passation.
L'une des tâches fondamentales du système d'exploitation consiste à décider à quels processus attribuer l'accès aux ressources système. L'ordonnanceur à temps partagé (TS) par défaut de Solaris tente d'accorder à chaque processus environ le même temps d'accès aux ressources système. Une limitation de l'accès est appliquée aux processus sans ressources de mémoire physique dont l'exécution n'est pas autorisée, ainsi qu'aux processus ayant des requêtes d'E-S en suspens qui sont bloqués.
Cette méthode est à la base de la plupart des systèmes d'exploitation modernes ; elle donne de bons résultats en autant que la politique "d'accès égal" convienne à l'entreprise. Cependant, des mécanismes plus perfectionnés sont requis pour mettre en oeuvre des politiques différentes. Par exemple, un service de fabrication peut posséder un système puissant, mais généralement peu utilisé en raison de la fluctuation de la demande saisonnière, tandis que le service de génie est presque toujours à cours de ressources informatiques. Bien que la sous-utilisation des capacités d'une machine constitue un gaspillage, il a toujours été problématique de partager le système de fabrication avec le service de génie. Avec une politique d'ordonnancement élémentaire, il est impossible de signifier au système d'exploitation que les utilisateurs du service de fabrication ont priorité sur ceux du service de génie dans le même système. Si le service de fabrication exécute un travail consommant 75 % des ressources système, ce travail ne pourra progresser normalement que si les autres travaux demandent 25 % ou moins des ressources. Toutefois, si un travail de génie demande alors 50 % des ressources système, le travail de fabrication crucial ne disposera pas des ressources dont il a besoin, car le système tentera de satisfaire également les besoins des deux travaux.
Supposons maintenant que les administrateurs déterminent que les besoins de traitement normaux de la fabrication peuvent être satisfaits avec 80 % de la capacité du système. Grâce à Solaris Resource Manager, l'administrateur du système peut spécifier que les utilisateurs du service de fabrication peuvent recevoir jusqu'à 85 % de la puissance de traitement du système s'ils le demandent, et l'ordonnanceur répartira le reste parmi les autres utilisateurs éventuels. Une autre possibilité de configuration, tout aussi valable mais plus radicale, consisterait à spécifier que les utilisateurs du service de fabrication peuvent recevoir jusqu'à 100 % des ressources système au besoin, ce qui empêcherait les autres services d'utiliser le système lorsque la fabrication a besoin de l'ensemble du système.
Solaris Resource Manager comporte une classe d'ordonnancement de l'UC qui remplace l'ordonnanceur de partage de temps standard. Ce module, appelé ordonnanceur SHR, constitue un ordonnanceur à partage équitable. Ce terme est toutefois imprécis, car c'est l'administrateur du système qui décide ce qui est "équitable". Ainsi, dans l'exemple ci-dessus il est équitable que le service de fabrication reçoive 100 % des ressources système. L'ordonnanceur SHR est responsable de l'attribution des ressources en fonction du plan défini dans le profil administratif.
Solaris Resource Manager met à jour une base de données de la consommation des ressources et des limites associées.
L'ordonnanceur SHR tient compte des spécifications administratives relativement aux ressources garanties. Il peut gérer les ressources renouvelables (le temps machine, par exemple) ou fixes (telles que le nombre de processus).
D'autres modules de Solaris Resource Manager mettent en oeuvre des restrictions de la consommation de diverses ressources. Par exemple, le temps de connexion et le nombre de sessions utilisateur sont gérés par un module d'authentification enfichable (PAM). Le module PAM consulte la base de données de Solaris Resource Manager chaque fois qu'un utilisateur tente d'ouvrir une session. Lorsque le système authentifie l'utilisateur (généralement par mot de passe), le temps de connexion de l'utilisateur et le nombre de connexions actuelles sont comparés aux limites. Si une limite est dépassée, la session est refusée.
L'environnement d'exploitation Solaris comporte plusieurs autres fonctions permettant de contrôler certains types de ressources. Certaines fonctions telles que l'ordonnancement en temps réel, nice(1), les quotas et les groupes de processeurs, font partie du système d'exploitation Solaris de base.
Solaris Bandwidth Manager est un progiciel offert en option, les domaines de système dynamiques sont des fonctions de la plate-forme du système Sun Enterprise 10000 et la reconfiguration dynamique est une fonction de la plate-forme du système Sun Enterprise.
Toutes ces composantes permettent une certaine gestion des ressources, mais elles diffèrent des fonctions de Solaris Resource Manager.
Ordonnancement en temps réel
Le système d'exploitation Solaris standard utilise la classe d'ordonnancement TS pour la plupart des tâches ordinaires. Cependant, il offre également l'ordonnancement en temps réel (RT) aux utilisateurs détenant des privilèges suffisants. La classe d'ordonnancement RT met en oeuvre une politique d'ordonnancement très différente (et intentionnellement très pondérée) afin d'assurer que des charges de travail particulières aient immédiatement accès au processeur.
Solaris Resource Manager peut coexister sur le même système que la classe d'ordonnancement RT, mais n'a alors aucun contrôle sur les processus exécutés dans la classe RT. L'ordonnanceur à partage équitable de Solaris Resource Manager peut gérer les ressources de l'UC uniquement pour les processus exécutés dans la classe RT. Par exemple, dans le cas d'un système à 4 processeurs, un processus à une unité d'exécution peut utiliser toutes les ressources d'un processeur ; c'est exactement ce qui se produit si le processus demandeur est lié à l'UC. Si ce système exécute aussi Solaris Resource Manager, les processus utilisateur ordinaires vont se disputer les trois UC non accaparées par le processus en temps réel. (Il faut noter que les processus en temps réel n'utilisent pas nécessairement l'UC continuellement. Lorsque l'UC se libère, Solaris Resource Manager commande les quatre processeurs.)
Commande nice( 1)
La commande nice permet à un utilisateur de définir la priorité d'exécution des programmes. Sans privilège de superutilisateur, cette commande ne permet à l'utilisateur que de diminuer sa priorité. Dans certains cas, cette commande peut s'avérer utile (par exemple, lorsqu'un utilisateur lance un travail par lots à basse priorité dans sa session de connexion interactive), mais elle exige la coopération de l'utilisateur. Solaris Resource Manager met en oeuvre les politiques administratives même sans la coopération de l'utilisateur.
Quotas
Les systèmes de fichiers Solaris sont dotés de mécanismes de quota permettant à l'administrateur de limiter l'utilisation du disque par des utilisateurs individuels. Cette fonctionnalité est indépendante de Solaris Resource Manager.
Groupes de processeurs
Les groupes de processeurs ont été instaurés dans Solaris 2.6. Cette caractéristique permet à l'administrateur de diviser les systèmes multiprocesseur en groupes logiques, et aux utilisateurs de lancer des processus dans ces groupes. L'avantage de cette méthode est que les charges de travail exécutées dans un groupe de processeurs sont protégées contre les actions de l'UC effectuées dans tout autre groupe de processeurs. D'une certaine manière, cette méthode est comparable à celle utilisée par Solaris Resource Manager, mais les deux fonctions ont des bases complètement différentes. Les groupes de processeurs ne contrôlent que l'activité de l'UC. Le contrôle s'effectue à un niveau matériel général, car les processeurs ne peuvent appartenir qu'à un groupe de processeurs à la fois. Particulièrement dans le cas des petits systèmes, la granularité peut être très élevée. Dans un système à 4 processeurs, la ressource minimale pouvant être attribuée équivaut à 25 % du système.
Solaris Resource Manager exerce toutefois un contrôle beaucoup plus fin. En effet, chaque utilisateur dispose d'une part du système. Les parts peuvent être distribuées arbitrairement avec une fine granularité, et l'ordonnanceur attribue les ressources en conséquence. Par exemple, si 50 parts sont accordées et qu'un utilisateur en détient 40, cet utilisateur disposera de 40 / 50 = 80 % de la ressource. De même, si un total de 67 parts est accordé, un utilisateur en possédant 57 disposera de 85 % de la ressource. En outre, Solaris Resource Manager peut contrôler d'autres ressources que l'UC. Pour de plus amples renseignements sur l'interaction entre Solaris Resource Manager et les groupes de processeurs, reportez-vous à la rubrique Rôle et effet des groupes de processeurs.
Domaines de systèmes dynamiques
Sun Enterprise 10000 est dotée d'une caractéristique appelée domaines de systèmes dynamiques, qui permet à l'administrateur de diviser logiquement une baie système en un ou plusieurs systèmes indépendants, à l'instar des fonctions de partitionnement offertes sur les ordinateurs centraux. Chaque système exécute sa propre copie de Solaris. Par exemple, un système comportant 32 UC répartis sur 8 cartes système pourrait être exploité comme un système à 16 UC et deux autres systèmes à 8 UC chacun. Avec une telle configuration, trois copies de Solaris seraient exécutées. Les domaines de systèmes dynamiques permettent également l'entrée et la sortie contrôlées de ressources dans chaque image de Solaris, créant ainsi un système relativement général de gestion des ressources physiques. (L'unité minimale d'attribution inter-domaine est une carte système entière.)
Solaris Resource Manager est semblable aux domaines de systèmes dynamiques en ce sens qu'il fournit à l'administrateur des mécanismes d'attribution des ressources, mais de manière tout à fait différente. Solaris Resource Manager fonctionne avec une seule instance de Solaris et il permet de gérer les ressources du système avec un degré élevé de contrôle administratif. Solaris Resource Manager peut servir à répartir les ressources entre de nombreux utilisateurs et de nombreuses applications, pour chaque instance de Solaris au sein d'un système Sun Enterprise 10000, en plus d'être utilisé conjointement avec les domaines de systèmes dynamiques.
Reconfiguration dynamique
La caractéristique de reconfiguration dynamique des serveurs Sun Enterprise permet aux utilisateurs d'ajouter et de supprimer dynamiquement des cartes système contenant des ressources matérielles telles que des processeurs, de la mémoire et des périphériques d'E/S. La reconfiguration dynamique de la mémoire n'a aucun effet sur la vérification de limite de mémoire effectuée par Solaris Resource Manager.
Solaris Bandwidth Manager
Le progiciel optionnel Solaris Bandwidth Manager fonctionne conjointement avec le noyau Solaris afin de mettre en oeuvre les limites de consommation de largeur de bande réseau. Solaris Bandwidth Manager est un logiciel de gestion destiné à une classe de ressources différente. Solaris Resource Manager et Solaris Bandwidth Manager ont des domaines de gestion différents : Solaris Resource Manager fonctionne sur une base «par utilisateur» ou «par application», tandis que Solaris Bandwidth Manager gère sur une base «par port», «par service» ou «par protocole».
Solaris Resource Manager est relié à plusieurs autres composants logiciels pouvant être présent dans le système, mais sans toutefois les remplacer.
Solaris Resource Manager et Solaris Bandwidth Manager gèrent des types de ressources différents.
Solaris Resource Manager n'est pas un moniteur système comme peut l'être Sun Management Center.
Solaris Resource Manager n'est pas un outil de planification de capacité. Il aide l'administrateur à gérer la capacité, et ses fonctions de comptabilité génèrent des registres d'utilisation pouvant être utilisés par le personnel de gestion pour effectuer des analyses de tendances, mais il n'effectue pas la planification de capacité en tant que telle.
Solaris Resource Manager n'est pas un ordonnanceur de travaux ; il contrôle l'exécution d'un processus sur son système hôte, mais non où et quand il est exécuté.
Etant donné que Solaris Resource Manager fonctionne sur un seul système, il ne s'agit pas d'un mécanisme d'équilibrage des charges parmi les membres d'un groupe. Solaris Resource Manager peut toutefois être utilisé efficacement pour gérer les charges de travail individuelles de chaque membre d'un groupe. Par exemple, vous pouvez donner priorité au travail d'un membre défaillant d'un groupe à haute disponibilité par rapport à une charge de travail d'arrière-plan d'un membre de relève.