Guide d'administration du système Solaris Resource Manager 1.3

Gestion des ressources de l'UC

L'attribution de la ressource d'UC (unité centrale) renouvelable est contrôlée au moyen d'un ordonnanceur à partage équitable appelé ordonnanceur SHR de Solaris Resource Manager.

Méthode de l'ordonnanceur

Un certain nombre de parts d'UC est attribué à chaque noeud limite. Des ressources d'UC sont attribuées aux processus associés à chaque noeud limite proportionnellement au nombre total de parts actives disponibles (une part est active si le noeud limite est relié à des processus en cours). Seuls les noeuds limites actifs sont pris en compte pour l'attribution d'une ressource, car ils comportent des processus actifs en cours d'exécution et exigent du temps de l'UC.

A mesure qu'un processus consomme des tops d'horloge d'UC, l'attribut d'utilisation d'UC de ce noeud limite augmente. L'ordonnanceur règle périodiquement les priorités de tous les processus afin de forcer les taux relatifs d'utilisation d'UC à converger vers les taux relatifs de parts d'UC pour tous les noeuds limites actifs à leurs niveaux respectifs. Ainsi, les utilisateurs recevront à long terme au moins leur part équitable de ressources de l'UC, quelle que soit l'activité des autres utilisateurs.

L'ordonnanceur est hiérarchique, car il fait également en sorte que les groupes reçoivent leur part équitable indépendamment de l'activité des membres. L'ordonnanceur SHR de Solaris Resource Manager est un ordonnanceur à long terme ; il fait en sorte que tous les utilisateurs et toutes les applications reçoivent leur juste part au cours de la période d'ordonnancement. Cela signifie que lorsqu'un utilisateur demande d'accéder à l'UC, cet utilisateur reçoit proportionnellement plus de ressources que les gros utilisateurs, jusqu'à ce que leurs utilisations comparatives correspondent à leur part "équitable". Plus vous dépassez votre part équitable actuellement, moins vous recevrez ultérieurement.

En outre, Solaris Resource Manager emploie une période de décroissance, réglée par l'administrateur du système, qui n'assure pas le suivi de l'utilisation passée. Le modèle de décroissance est à demi-vie : au cours d'une demi-vie, 50 % de la ressource est éliminée. Grâce à cette méthode, les utilisateurs stables ne sont pas pénalisés par les utilisateurs à court terme consommant beaucoup de ressources. La période de décroissance à demi-vie fixe la réponse ou le terme de l'ordonnanceur ; la valeur par défaut est 120 secondes. Une longue demi-vie favorise une utilisation uniforme, convenant aux longs traitements par lots, tandis qu'une demi-vie courte favorise les utilisateurs interactifs. Les valeurs plus faibles augmentent la rapidité de réaction dans le système, au détriment de la précision de calcul et de la mise à jour des attributions dans l'ensemble du système. Quels que soient les réglages administratifs, l'ordonnanceur tente d'empêcher la privation de ressources et d'assurer un comportement raisonnable, même dans les situations extrêmes.

Avantages de l'ordonnanceur

Le principal avantage de l'ordonnanceur SHR de Solaris Resource Manager par rapport à l'ordonnanceur standard de Solaris est qu'il programme des utilisateurs ou des applications plutôt que des processus individuels. Chaque processus associé à un noeud limite est soumis à un ensemble de limites. Dans le cas simple d'un utilisateur exécutant un seul processus actif, cela revient à soumettre chaque processus aux limites spécifiées dans le noeud limite correspondant. Lorsque plusieurs processus sont reliés à un noeud limite, par exemple lorsque les membres d'un groupe exécutent chacun de multiples processus, tous les processus sont collectivement soumis aux limites imposées. Cela signifie que les utilisateurs ou les applications ne peuvent pas consommer les ressources de l'UC à un taux dépassant leur part attribuée, quel que soit le nombre de processus concurrents qu'ils exécutent. Le mode d'attribution du nombre de parts est simple et compréhensible, et l'effet de la modification du nombre de parts d'un utilisateur est prévisible.

L'ordonnanceur offre un autre avantage : en plus de gérer l'ordonnancement d'unités d'exécution individuelles (en termes techniques, dans Solaris, l'entité ordonnancée est appelée processus léger), il répartit les ressources de l'UC entre les utilisateurs.

Ces concepts sont représentés par l'équation suivante :

L'équation montre que la nouvelle priorité Solaris Resource Manager est égale à la priorité actuelle augmentée de l'utilisation de l'UC, divisée par le nombre de parts.

La concordance est ensuite établie entre new_SRM_priority et la priorité du système. Plus la priorité de Solaris Resource Manager est élevée, plus la priorité du système est basse et vice versa. A chaque période période de décroissance, la valeur CPU_usage est réduite de moitié et on lui ajoute l'utilisation la plus courante.

Chaque utilisateur dispose également d'un ensemble d'indicateurs, qui sont en fait des variables booléennes permettant d'activer ou de désactiver certains privilèges système, par exemple la connexion. Les indicateurs peuvent être réglés individuellement par utilisateur ou être hérités d'un noeud limite père.

Les taux d'utilisation, les limites et les indicateurs d'un utilisateur peuvent être consultés par les autres utilisateurs, mais ces valeurs ne peuvent être modifiées que par les utilisateurs détenant les privilèges administratifs correspondants.

Elimination du gaspillage d'UC

Solaris Resource Manager ne gaspille jamais la disponibilité de l'UC. Même si la part attribuée à un utilisateur est très faible, cet utilisateur recevra toutes les ressources de l'UC s'il n'y a aucun utilisateur concurrent. Par conséquent, il est possible que les utilisateurs remarquent une baisse des performances. Si un utilisateur ayant une faible part effective exécute un processus interactif en l'absence de concurrence, il semblera être exécuté rapidement. Toutefois, dès qu'un autre utilisateur ayant une part supérieure demandera d'accéder à l'UC, il aura priorité sur le premier utilisateur, lequel remarquera un ralentissement de l'exécution de sa tâche. Néanmoins, Solaris Resource Manager fait le nécessaire pour que les utilisateurs légitimes ne restent pas sans ressources et soient en mesure de réaliser leur travail. Tous les processus programmés par Solaris Resource Manager (sauf ceux ayant une valeur nice maximale) ont périodiquement accès à l'UC. De plus, un mécanisme empêche les nouveaux utilisateurs qui viennent de s'ouvrir une session d'obtenir une proportion «équitable» de l'UC du point de vue arithmétique, mais excessive au détriment des utilisateurs existants.