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

Ajout d'un utilisateur d'applications de calcul par lots

Cet exemple illustre la commande suivante :

srmkill

Détruit tous les processus actifs reliés à un noeud limite.

Le service des finances est propriétaire du système de base de données, mais un utilisateur (Joe) du service de génie doit exécuter un travail de calcul par lot et voudrait utiliser la machine des finances durant les heures où le système est généralement inactif. Le service des finances considère le travail de Joe comme moins important que les bases de données, et accepte d'exécuter son travail uniquement s'il ne perturbe pas le rôle principal du système. Pour mettre cette politique en oeuvre, ajoutez un nouveau groupe (lot) à la base de données de noeuds limites, et ajoutez Joe au nouveau groupe lot dans la hiérarchie de noeuds limites du serveur.

# limadm set cpu.shares=20 databases
# limadm set cpu.shares=1 batch
# limadm set cpu.shares=1 joe
# limadm set sgroup=batch joe

Figure 10-2 Ajout d'une application de calcul par lots

Le diagramme illustre la procédure d'ajout d'un nouveau groupe appelé 'lot' à la hiérarchie de bases de données et de serveurs de noeuds limites et l'ajout de l'utilisateur Joe au nouveau groupe 'lot'.

Cette série de commandes permet de modifier l'attribution des parts afin que le groupe bases_de_données possède 20 parts et le groupe lot, une seule. Ainsi, les membres du groupe lot (Joe seulement) utiliseront au plus 1/21 des ressources de la machine si le groupe bases_de_données est actif. Le groupe bases_de_données reçoit 20/21, ou 95,2 %, ce qui dépasse la proportion de 60 % + 20 % = 80 % antérieurement déterminée comme étant suffisante pour exécuter les applications de base de données. Si les bases_de_données ne demandent pas leur attribution entière, Joe recevra plus que sa part de 4,8 %. Si les bases_de_données sont complètement inactives, l'attribution de Joe pourrait atteindre 100 %. Lorsque le nombre de parts disponibles attribué aux bases_de_données est augmenté de 1 à 20, il n'est pas nécessaire de modifier l'attribution des parts de bd1 et bd2. Dans le groupe bases_de_données, quatre parts sont toujours disponibles, attribuées à raison de 3:1. Les différents niveaux de l'arbre d'ordonnancement sont complètement indépendants ; seul le rapport du nombre de parts entre les groupes homologues importe.

Même avec ces assurances, le service des finances souhaite tout de même s'assurer que Joe ne pourra pas ouvrir de session durant les heures de bureau. Cela est possible en ajoutant certains contrôles de connexion dans le groupe lot. Comme les contrôles tiennent compte de l'heure, on peut exécuter un script qui ne permet au groupe lot de réaliser une connexion qu'à des moments particuliers. Par exemple, des entrées crontab pourraient être employées :

0 6 * * * /usr/srm/bin/limadm set flag.nologin=set batch
0 18 * * * /usr/srm/bin/limadm set flag.nologin=clear batch

A 6 h 00, le groupe lot n'est pas autorisé à se connecter, mais à 18 h 00 cette interdiction est levée.

Une politique encore plus stricte peut être mise en oeuvre en ajoutant une autre ligne à l'entrée crontab :

01 6 * * * /usr/srm/bin/srmkill joe

Cette ligne utilise la commande srmkill( 1MSRM) pour détruire tout processus relié au noeud limite Joe à 6 h 01. Cela ne sera pas nécessaire si les seules ressources requises par le travail sont contrôlées par Solaris Resource Manager. Cette action pourrait toutefois être utile si le travail de Joe était susceptible d'accaparer des ressources qui nuiraient aux opérations normales, par exemple un travail pouvant bloquer une base de données ou dominant un canal d'E-S.

A présent, Joe peut ouvrir une session et exécuter son travail uniquement durant la nuit. Vu que Joe (et le groupe lot) détient beaucoup moins de parts que les autres applications, l'exécution de son application utilisera moins de 5 % des ressources de la machine. De même, la commande nice(1) peut être utilisée pour réduire la priorité des processus reliés à ce travail, afin que sa priorité d'exécution soit inférieure à celle des autres travaux ayant le même nombre de parts dans Solaris Resource Manager.

Maintenant, le service des finances a fait le nécessaire pour que ses applications de base de données aient un accès suffisant au système et ne se nuisent pas mutuellement. En outre, les besoins de traitement par lot nocturnes de Joe sont satisfaits, tout en s'assurant qu'ils ne perturberont pas les applications indispensables du service.