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

Exemple d'attribution de parts

Structure de l'arbre d'ordonnancement

Les paragraphes ci-après traitent de la structure de l'arbre d'ordonnancement, sujet auquel l'administrateur central doit porter une attention particulière :

Description de l'arbre

L'arbre ci-dessous illustre une structure comportant plusieurs chefs de groupe et utilisateurs. La racine de l'arbre est l'utilisateur root. Un noeud limite de chef de groupe est indiqué par deux nombres entiers qui représentent les valeurs de ses attributs copu.shares et cpu.myshares respectivement. Un noeud limite feuille est indiqué par un seul nombre entier, la valeur de son attribut shares.

Figure 6-1 Structure de l'arbre d'ordonnancement

Le diagramme montre des chefs de groupe avec leurs valeurs d'attribut cpu.shares et cpu.myshares. Pour les noeuds limites feuilles indiqués sous les chefs de groupe, seule la valeur cpu.shares est indiquée.

Calcul de la part attribuée

Dans la figure précédente, des processus sont reliés aux noeuds limites A, C et N. Au niveau supérieur, il suffirait de partager l'unité centrale entre A et M du fait qu'il n'y a aucun processus pour W ou un membre de ce groupe. Le rapport des parts entre A et M étant de 3:1, la part attribuée au niveau supérieur serait de 75% au groupe A et 25% au groupe M.

La part de 75% accordée au groupe A serait partagée entre les utilisateurs actifs (A et C) en fonction du rapport de leurs parts au sein du groupe A (1:2). Notez que l'attribut myshares est utilisé pour déterminer les parts de A par rapport à ses enfants. Par conséquent, l'utilisateur A obtiendrait un tiers de la part attribuée au groupe, et C les deux tiers. Le total attribué au groupe M serait accordé au noeud N, car il est le seul à comporter des processus.

La distribution globale des parts d'UC disponibles serait donc de 0,25 pour A, 0,5 pour C et 0,25 pour N.

Maintenant, supposons que les processus de A, C et N ont toujours besoin de l'UC et que le système dispose d'un maximum de deux processeurs. Dans un tel cas, Solaris Resource Manager ferait en sorte que chaque processus reçoive les pourcentages ci-après du total des ressources de l'UC :

Le taux de progression de chaque processus est contrôlé de façon que la cible soit atteinte pour chaque noeud limite. Sur un système doté de plus de deux unités centrales mais de seulement ces six processus exécutables, le processus de C ne parviendra pas à consommer sa part de 50%, et le reste sera réparti proportionnellement entre A et N.