Guide d'administration du système Solaris Resource Manager 1.0 pour Solaris 2.6 (Édition plateforme SPARC)

Paramètres d'initialisation du noyau

Le noyau comporte certains paramètres de Solaris Resource Manager pouvant être définis par l'administrateur central lors de l'amorçage du noyau. Lors de l'amorçage, Solaris lit le fichier /etc/system et l'utilise pour configurer les modules du noyau (voir system(4) pour plus de détails). Voici les paramètres pouvant être définis dans le module SHR (qui sont tous des nombres entiers à 32-bits) pour remplacer les réglages par défaut de Solaris Resource Manager :

SRMLnodes

Nombre de noeuds limites à mettre en mémoire cache dans le noyau. Dans les systèmes Solaris, chaque noeud limite du noyau exige environ 3 ko. La valeur zéro (la valeur par défaut) signifie que le noyau déterminera la valeur. En pareil cas, voici l'approche employée :

(nproc / SRMProcsPerUid ) + SRMLnodesExtra 

nproc est le nombre maximum de processus simultanés autorisés dans le système. La valeur minimum 6 a priorité sur ce calcul. Le maximum spécifié par SRMMemoryMax a également priorité sur ce calcul.

SRMProcsPerUid

Nombre moyen prévu de processus par utilisateur. La valeur par défaut est 4.

SRMLnodesExtra

Biais utilisé dans l'approche heuristique visant à déterminer la taille du tableau de noeuds limites en mémoire. La valeur par défaut est 20.

SRMNhash

Nombre d'entrées dans la table de hachage utilisé pour le mappage des valeurs UID avec les noeuds limites dans le noyau. Sous Solaris, chaque entrée a une longueur de 4 octets. La valeur par défaut est zéro, ce qui indique d'utiliser la même valeur que pour le nombre de noeuds limites.

SRMMemoryMax

L'inverse de cette valeur est une fraction indiquant le pourcentage maximum de mémoire réelle à utiliser pour le noeud limite et les tables de hachage de Solaris Resource Manager. La valeur par défaut est 20, ce qui signifie qu'un maximum de 5 % de la mémoire réelle sera attribué aux structures de données de Solaris Resource Manager.

SRMMemWarnFreq

Intervalle minimum, en secondes, entre les avertissements de dépassement de mémoire pour un noeud limite. La valeur par défaut est 4.

Par exemple, dans le fichier /etc/system, la ligne

set srmlim:SRMMemWarnFreq=10 

indique que les messages de dépassement de mémoire doivent être envoyés au maximum toutes les 10 secondes par utilisateur.

Il existe également certains paramètres ne faisant pas partie de Solaris Resource Manager, mais qui en influencent le comportement, par exemple :

initclass

Nom de la classe d'ordonnancement où le processus init(1M) est lancé. Sous Solaris Resource Manager, ce paramètre devrait avoir la valeur "SHR" (y compris les guillemets). La valeur par défaut sous Solaris est "TS". Si vous voulez que Solaris Resource Manager contrôle les ressources de l'UC, incluez la ligne suivante dans le fichier /etc/system :

set initclass="SHR"

afin de remplacer la valeur par défaut.

extraclass

Nom d'un module de classe d'ordonnancement à charger, sans nécessairement l'utiliser en tant que classe d'ordonnancement par défaut. Pour que Solaris Resource Manager ne contrôle que les ressources autres que l'UC, incluez la ligne suivante dans le fichier /etc/system :

set extraclass="SHR"

Pour initialiser un système sans charger Solaris Resource Manager, il ne faut pas utiliser /etc/system, mais plutôt /etc/system.noshrload. Pour en savoir davantage, consultez "Initialisation sans Solaris Resource Manager".

Configuration de démarrage multi-utilisateur

Lors d'un démarrage normal du système, lorsque le système passe du mode mono-utilisateur au mode multi-utilisateur, un script de démarrage de Solaris Resource Manager est exécuté afin de régler divers paramètres de Solaris Resource Manager. Pour obtenir plus de détails sur ce script, consultez Chapitre 4.

Si vous modifiez le script d'initialisation (/etc/init.d/init.srm), conservez des copies distinctes des versions originale et modifiée. Les mises à jour de Solaris Resource Manager ne conservent pas nécessairement les scripts d'initialisation existants.

Paramètres globaux de Solaris Resource Manager - commande srmadm

La commande srmadm(1MSRM) permet à l'administrateur de définir, de modifier et d'afficher les paramètres globaux de Solaris Resource Manager. Consultez la page de manuel pour obtenir des détails complets sur tous les paramètres.

Vous pouvez exécuter la commande srmadm(1MSRM) autant de fois que nécessaire pour régler divers paramètres. Il n'est pas nécessaire de tous les inclure dans un même appel. La commande srmadm(1MSRM) vous permet également de modifier les paramètres d'exploitation durant l'exécution du système Solaris Resource Manager, bien que certaines précautions doivent être prises.

Les options srmadm(1MSRM) d'activation et de désactivation des fonctions principales de Solaris Resource Manager ont une importance particulière pour les administrateurs. Voici ces options :

fileopen[={y|n}]

La base de données par défaut, /var/srm/srmDB, peut être remplacée au moyen de l'option -f . Il faut noter que la fermeture du fichier de base de données de Solaris Resource Manager en cours de fonctionnement est une action d'urgence, car elle a des conséquences indésirables : tous les processus continueront de fonctionner sur le noeud limite racine délégué, ce qui pourrait leur accorder des privilèges trop élevés ; l'ordonnanceur de l'UC est désactivé ; Solaris Resource Manager cesse d'appliquer les limites. Lorsque cette option est activée, Solaris Resource Manager n'ouvre pas de base de données des limites, et sa mémoire cache ne contient que le noeud limite racine délégué auquel tous les processus sont reliés.

share[={y|n}]

Lorsque cette option est activée, l'ordonnanceur d'UC de Solaris Resource Manager est utilisé, et l'ordonnancement de l'UC est effectué en fonction de l'algorithme d'usage dynamique et de décroissance de Solaris Resource Manager. Ce mode peut être choisi uniquement lorsque le mode fileopen est activé. Si cette option est désactivée, les calculs d'usage de l'ordonnanceur d'UC de Solaris Resource Manager cessent, et les processus sont ordonnancés avec priorités égales fixes, selon un mode de recherche circulaire.

limits[={y|n}]

Lorsque cette option est activée, Solaris Resource Manager applique les limites de mémoire virtuelle et de processus. Ce mode peut être choisi uniquement lorsque le mode fileopen est activé. Si cette option est désactivée, Solaris Resource Manager continue de mettre à jour les attributs d'usage, mais n'applique pas les limites.

adjgroups[={y|n}]

Lorsque cette option est activée, l'ajustement global des parts effectives des groupes de l'ordonnanceur d'UC de Solaris Resource Manager est employé. Dans la plupart des cas, il est recommandé d'activer cette option. Durant chaque intervalle d'exécution, les usages normalisés de toutes les entrées de limite sont recalculés. Si le mode d'ordonnancement adjgroups est activé, un traitement supplémentaire des usages normalisés est effectué comme suit. L'ordonnanceur effectue une passe sur l'arbre d'ordonnancement, en comparant la part réelle récente de chaque groupe à sa part attribuée. Les groupes qui ont reçu moins que leur juste part sont biaisés de manière à recevoir une part réelle supérieure lors de l'intervalle d'exécution suivant. Ainsi, les groupes recevront leur part équitable des ressources de l'UC lorsque possible, quelles que soient les actions de leurs membres.

limshare[={y|n}]

Lorsque cette option est activée, l'ordonnanceur d'UC de Solaris Resource Manager applique un plafond de priorité afin de limiter les parts effectives de tous les utilisateurs pour empêcher les utilisateurs ayant une très faible attribution d'acquérir brièvement presque 100 % de l'UC. L'état activé est recommandé.

Le taux de service de l'UC d'un utilisateur est à peu près inversement proportionnel à son usage. Si un utilisateur n'a pas été actif depuis longtemps, son usage diminue à près de zéro. Lorsque cet utilisateur ouvre une session (ou que le noeud limite devient actif d'une manière quelconque), durant l'intervalle d'exécution suivant, la priorité des processus de l'utilisateur pourrait être suffisamment élevée pour monopoliser l'UC.

Si l'indicateur d'ordonnancement limshare est activé, l'ordonnanceur évalue la part réelle qu'un noeud limite recevra avant l'intervalle d'exécution suivant. Si le résultat dépasse la part attribuée à l'utilisateur par un certain facteur (voir maxushare), l'usage normalisé de l'utilisateur est modifié de manière à empêcher cela.

Il existe aussi deux paramètres facultatifs de la commande srmadm(1MSRM) utiles à l'administrateur. Voici ces paramètres :

Voici des exemples représentatifs de commandes srmadm(1MSRM).

Pour lancer Solaris Resource Manager en activant l'ordonnanceur d'UC et les limites de ressources :

# srmadm set -f /var/srm/srmDB fileopen=y:share=y:limits=y 

Pour régler le taux de décroissance d'usage de l'UC avec une demi-vie de 5 minutes :

# srmadm set usagedecay=300s 

Pour afficher les réglages actuels des indicateurs et les charges :

% srmadm 

Pour afficher tous les réglages par défaut :

% srmadm show -dv 

Désactivation de Solaris Resource Manager

La commande srmadm(1MSRM) permet de désactiver Solaris Resource Manager en désactivant l'indicateur "fileopen" ; tous les processus sont transférés vers le noeud limite racine délégué, les autres noeuds limites modifiés dans la mémoire cache sont transférés sur le disque, et le fichier du noeud limite est fermé. Cela désactive automatiquement les indicateurs de part et de limites, ainsi que, respectivement, l'ordonnanceur d'UC de Solaris Resource Manager et l'application des limites. Au besoin, vous pouvez désactiver séparément les indicateurs de part et de limites en laissant le fichier du noeud limite ouvert. Cela est préférable à la fermeture du fichier, car les processus peuvent demeurer reliés à leur noeud limite correspondant.

Il faut noter que si seul l'ordonnanceur de Solaris Resource Manager est désactivé en cours d'exécution, cela n'aura pour effet que d'interrompre l'algorithme d'usage et de décroissance. L'ordonnanceur continue de traiter les processus dans la classe d'ordonnancement SHR, mais à mesure que chacun d'eux reçoit une nouvelle priorité, la même valeur est employée, ce qui produit un ordonnancement simple à "recherche circulaire".

Si vous réactivez Solaris Resource Manager en ouvrant le fichier et en réglant les indicateurs de part ou de limite après la fermeture du fichier, les processus existants ne sortiront pas du noeud limite racine. Il est déconseillé de fermer la base de données de Solaris Resource Manager au cours de son fonctionnement normal. Autrement, vous devrez réinitialiser le système pour vous assurer que les processus sont correctement reliés aux noeuds limites.