WLM est configurable par « smit wlm » ou wsm ( rubrique Workload Manager ).
Si nécessaire, la restauration du lien se fait par :
$ smitty wlm
Start/Stop/Update WLM
Update Workload Manager
Entrer chv
Définition des classes de processes
Une classe contient un ensemble de processes ayant une ou plusieurs caractéristiques communes en terme d’utilisateurs, groupes et noms.
Liste des classes de la configuration “chv”
$ cat /etc/wlm/chv/classes
System:
Default:
Shared:
mckpat:
description = "Base Oracle MCKPAT"
inheritance = "yes"
localshm = "yes"
mckgef:
description = "Base Oracle MCKGEF"
inheritance = "yes"
localshm = "yes"
mckgrh:
description = "Base Oracle MCKGRH"
inheritance = "yes"
localshm = "yes"
svc:
description = "Processes batch ou sauvegarde"
inheritance = "yes"
Règles d’assignation d’un process à une classe
L’affectation d’un process dans une classe peut se faire de différentes façons :
. automatiquement au lancement de WLM pour les processes déjà démarrés, en fonction de règles prédéfinies
. dynamiquement lors de la création d’un process
. manuellement ( par script externe à WLM ), via le pid du process
Un process est affecté à la première classe rencontrée correspondant à une règle, ou bien à la classe de son père si le paramètre « inheritance » est positionné à « yes ».
*
Classe |
Utilisateur |
Groupe |
Application |
mckpat |
- |
- |
/appexeprod/gam/bin/* /appexeprod/gp/bin/* /appexeprod/interact/bin/* /appexeprod/interfaces/intact/bin/* /appexeprod/interfaces/dis_hprim/bin/* /appexeprod/interfaces/hprimxml/optimbloc/bin/* /appexeprod/interfaces/hprimxml/cardio/bin/* /appexeprod/interfaces/hprimxml/sirilog/bin/* /appexeprod/interfaces/hprimxml/v60p1/bin/* /appexeprod/noyau/bin/* /appexeprod/noyau/editions/bin/* /appexeprod/ztitr/bin/* /appexeprod/ipg/bin/* |
mckgef |
- |
- |
/appexeprod/gef/bin/* |
mckgrh |
- |
- |
/appexeprod/grh/bin/* |
svc |
- |
- |
/usr/sbin/back* /soft/oracle/product/10.1/bin/rman /usr/openv/netbackup/bin/* |
System |
root daemon radiusd |
- |
/soft/oracle/product/10.1/bin/* /usr/tuxedo/bin/WSL /soft/tuxedo/8.1/bin/WSH /soft/tuxedo/8.1/bin/TMS_ORA10102 /usr/tuxedo/bin/TMS /soft/tuxedo/8.1/bin/BBL /appexeprod/tprx/bin/* |
Default |
- |
- |
- |
Les instances Oracle étant issues du même binaire, WLM ne peut pas affecter automatiquement les processes d’une instance particulière à une classe et nécessite de passer par une affectation manuelle.
Le script ‘/home/root/shell/wlm_assign.ksh’ permet d’affecter respectivement aux classes mckpat, mckgef et mckgrh les processes des instances MCKPAT, MCKGEF et MCKGRH.
Il s’appuie sur le fichier de configuration /etc/wlm/chv/ma.conf dont le format est le suivant :
<chaîne> <Classe> <Inheritance yes/no>
root/mckp1:/>cat /etc/wlm/chv/ma.conf
MCKPAT mckpat yes
MCKGEF mckgef yes
MCKGRH mckgrh yes
Le script met dans la classe <Classe> tous les processes comportant la chaîne <Nom de l’instance> et leurs fils, que la chaîne soit contenue dans le nom du process ou dans ses arguments.
Classe |
Utilisateur |
Groupe |
Application |
mckpat |
- |
- |
*MCKPAT* |
mckgef |
- |
- |
*MKGEF* |
mckgrh |
- |
- |
*MCKGRH* |
Ce script devant être exécuté après le lancement de toutes les bases Oracle, il est recommandé de l’exécuter via le script qui lance toutes les applications ‘lance_tout’.
Définition des minima/maxima par classe
$ cat /etc/wlm/chv/limits
System:
CPU = 0%-30%;100%
memory = 1%-100%;100%
Default:
CPU = 0%-10%;100%
mckpat:
CPU = 20%-100%;100%
mckgef:
CPU = 0%-30%;100%
mckgrh:
CPU = 0%-30%;100%
svc:
CPU = 0%-30%;100%
Démarrage et arrêt de WLM
WLM peut fonctionner dans différents modes :
. passif : observation du comportement des ressources CPU, mémoire, E/S disques de chaque classe
. actif : régulation des ressources CPU, mémoire, E/S disques de chaque classe
NB : Il est aussi possible d’activer uniquement la fonction régulation CPU.
WLM est actuellement démarré en mode passif par /etc/inittab :
$ grep wlm /etc/inittab
wlm:2:once:/usr/sbin/wlmcntrl -p > /dev/console 2>&1
Vérification du mode de fonctionnement de WLM
$ wlmcntrl -q
1495-053 WLM is running in passive mode
Arrêt total de WLM
$ wlmcntrl -o
Démarrage ou passage en mode passif
$ wlmcntrl -p
Démarrage ou passage en mode CPU seul
$ wlmcntrl -c
Démarrage ou passage en mode actif complet
$ wlmcntrl -a
La prise en compte dynamique d’une modification d’un fichier de configuration WLM s’effectue par la commande :
$ wlmcntrl -u
NB : Les fichiers applicatifs n’étant disponibles que sur P1, WLM est configuré et activé sur P1 seulement. D’autre part, WLM est configuré sur P2, T1 et T2.
Outils de reporting
Historisation : observation des ressources consommées depuis le lancement de WLM
$ wlmstat -TcmB ""
CLASS CPU MEM DKIO PROCESSES THREADS LOGINS cd0 hdisk0 hdisk1 hdisk4
Unmanaged 0 0 1273144 0 0 0 0 13312 13312 1246520
Default 3602813 0 58906808 3 130558 0 0 9331304 9706600 39868904
Shared 0 0 6417552 0 0 0 0 53320 174608 6189624
System 1913119 0 18014584 294 72470 17 0 2486401 4204721 11323462
mckpat 8433640 0 89312264 223 22272 167 0 2448 4808 89305008
mckgef 1433589 0 1669568 94 4589 68 0 48 512 1669008
mckgrh 1948898 0 1957664 93 4522 85 0 7576 12688 1937400
wsl 16016 0 16 5 5 0 0 0 0 16
tms 142098 0 72056 267 335 1 0 40 40 71976
svc 0 0 0 0 0 0 0 0 0 0
TOTAL 17490173 0 177624504 979 234751 338 0 0 0 0
CPU : en µs
Mémoire : non géré, toujours à 0
E/S : nombre de blocs de 512 octets lus/écrits
Observation ponctuelle
$ wlmstat -acmB ""
CLASS CPU MEM DKIO cd0 hdisk0 hdisk1 hdisk4
Unmanaged 0 10 0 0 0 0 0
Default 0 13 0 0 0 0 0
Shared 0 9 0 0 0 0 0
System 0 5 0 0 0 0 0
mckpat 0 13 0 0 0 0 0
mckgef 0 40 0 0 0 0 0
mckgrh 0 11 0 0 0 0 0
wsl 0 0 0 0 0 0 0
tms 0 7 0 0 0 0 0
svc 0 0 0 0 0 0 0
TOTAL 0 98 0 0 0 0 0
Les résultats sont exprimés en % des ressources système utilisées.
La mémoire concernée est uniquement la RAM en %.
Observation à intervalles réguliers
$ wlmstat -acmB "" interval nombre
$ wlmstat -vc
CLASS tr i #pr CPU sha min smx hmx des rap urap pri
Unclassified 0 0 0 0 -1 0 100 100 100 100 0 10
Unmanaged 0 0 0 0 -1 0 100 100 100 100 0 10
Default 0 0 1 0 -1 0 10 100 10 100 0 0
Default.Default 0 0 1 - -1 0 100 100 100 100 0 0
Default.Shared 0 0 0 - -1 0 100 100 100 100 0 0
Shared 0 0 0 0 -1 0 100 100 100 100 0 0
Shared.Default 0 0 0 - -1 0 100 100 100 100 0 0
Shared.Shared 0 0 0 - -1 0 100 100 100 100 0 0
System 0 0 392 0 -1 10 30 100 30 100 0 0
System.Default 0 0 393 - -1 0 100 100 100 100 0 0
System.Shared 0 0 0 - -1 0 100 100 100 100 0 0
mckpat 0 1 315 0 -1 20 100 100 100 100 0 0
mckpat.Default 0 0 315 - -1 0 100 100 100 100 0 0
mckpat.Shared 0 0 0 - -1 0 100 100 100 100 0 0
mckgef 0 1 117 0 -1 0 30 100 30 100 0 0
mckgef.Default 0 0 117 - -1 0 100 100 100 100 0 0
mckgef.Shared 0 0 0 - -1 0 100 100 100 100 0 0
mckgrh 0 1 154 49 -1 0 30 100 30 -100 194 194
mckgrh.Default 0 0 154 100 -1 0 100 100 100 -100 194 194
mckgrh.Shared 0 0 0 0 -1 0 100 100 100 100 97 97
svc 0 1 0 0 -1 0 30 100 30 100 0 0
svc.Default 0 0 0 - -1 0 100 100 100 100 0 0
svc.Shared 0 0 0 - -1 0 100 100 100 100 0 0
Identification des processes non classés
Ponctuellement :
$ ps -c Default
Archivage des processes non classés par ajout de la ligne suivante dans la crontab de root :
* * * * * ps -c Default > /tmp/Default.tmp; sort -u /tmp/Default.tmp /tmp/Default.all > /tmp/Default.0; mv /tmp/Default.0 /tmp/Default.all
/tmp/Default.all contient la liste de tous les processes non classés depuis sa dernière remise à zéro.
Classement périodique des processes affectés « manuellement » à une classe de la ligne suivante dans la crontab de root :
0 * * * * /home/root/shell/wlm_assign.ksh > /dev/null 2>&1
Commandes complémentaires
$ ps -c nom_de_la_classe
$ ps -ef -o user,pid,class,args
Occupation mémoire et paging space des processes d’une classe donnée
$ svmon -W nom_classe -l