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

icon phone
Téléphone/Whatsapp : +33 (0)6 83 84 85 74
icon phone