JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Gestion des informations système, des processus et des performances dans Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Français)
search filter icon
search icon

Informations document

Préface

1.  Gestion des informations système (tâches)

2.  Gestion des processus système (tâches)

Nouveautés concernant la gestion des processus système

Pseudo-processus système

Gestion des processus système

Gestion des processus système (liste des tâches)

Commandes de gestion des processus système

Utilisation de la commande ps

Utilisation du système de fichiers et des commandes /proc

Gestion des processus à l'aide des commandes de processus (/proc)

Etablissement de la liste des processus

Affichage d'informations sur les processus

Contrôle des processus

Arrêt d'un processus (pkill, kill)

Arrêt d'un processus (pkill)

Arrêt d'un processus (kill)

Débogage d'un processus (pargs, preap)

Gestion des informations sur les classes de processus

Gestion des informations sur les classes de processus (liste des tâches)

Modification de la priorité de planification des processus (priocntl)

Affichage des informations de base sur les classes de processus (priocntl)

Affichage de la priorité globale d'un processus

Définition de la priorité d'un processus (priocntl )

Modification des paramètres de planification d'un processus de partage du temps (priocntl)

Modification de la classe d'un processus ( priocntl)

Modification de la priorité d'un processus de partage du temps (nice)

Modification de la priorité d'un processus (nice)

Résolution des problèmes liés aux processus système

3.  Surveillance des performances du système (tâches)

4.  Tâches de planification du système (tâches)

5.  Gestion de la console système, des périphériques terminaux et des services d'alimentation (tâches)

Index

Gestion des informations sur les classes de processus

La liste suivante identifie les classes de programmation des processus qui peuvent être configurées sur votre système. La plage de priorité de l'utilisateur est également incluse pour la classe de partage du temps.

Les classes de programmation de processus possibles sont les suivantes :

Gestion des informations sur les classes de processus (liste des tâches)

Tâche
Description
Voir
Affichage des informations de base relatives aux classes de processus
Utilisez la commande priocntl -l pour afficher les classes de programmation et les plages de priorité des processus.
Affichage de la priorité globale d'un processus
Utilisez la commande ps -ecl pour afficher la priorité globale d'un processus.
Définition de la priorité d'un processus
Démarrez un processus avec un niveau de priorité spécifique à l'aide de la commande priocntl - e -c.
Modification des paramètres de planification d'un processus de partage du temps
Utilisez la commande priocntl -s -m pour modifier les paramètres de planification d'un processus de partage du temps.
Modification de la classe d'un processus
Utilisez la commande priocntl -s -c pour modifier la classe d'un processus.
Modification de la priorité d'un processus
Utilisez la commande /usr/bin/nice avec les options appropriées pour réduire ou augmenter la priorité d'un processus.

Modification de la priorité de planification des processus (priocntl)

La priorité de planification d'un processus est la priorité affectée par le planificateur des processus, en fonction des stratégies de planification. La commande dispadmin répertorie les stratégies de planification par défaut. Pour plus d'informations, reportez-vous à la page de manuel dispadmin(1M).

Vous pouvez utiliser la commande priocntl pour attribuer des processus à une classe de priorité et gérer les priorités de processus. Pour consulter des instructions sur l'utilisation de la commande priocntl pour gérer les processus, voir Définition de la priorité d'un processus (priocntl ).

Affichage des informations de base sur les classes de processus (priocntl)

Exemple 2-4 Affichage des informations de base sur les classes de processus (priocntl)

L'exemple suivant illustre la sortie de la commande priocntl -l.

# priocntl -l
CONFIGURED CLASSES
==================

SYS (System Class)

TS (Time Sharing)
        Configured TS User Priority Range: -60 through 60

FX (Fixed priority)
        Configured FX User Priority Range: 0 through 60

IA (Interactive)
        Configured IA User Priority Range: -60 through 60

Affichage de la priorité globale d'un processus

Exemple 2-5 Affichage de la priorité globale d'un processus

L'exemple suivant illustre la sortie de la commande ps -ecl. Les valeurs de la colonne PRI indiquent la priorité de chaque processus.

$ ps -ecl
 F S    UID   PID  PPID  CLS PRI     ADDR     SZ    WCHAN TTY         TIME CMD
 1 T      0     0     0  SYS  96        ?      0          ?         0:11 sched
 1 S      0     5     0  SDC  99        ?      0        ? ?         0:01 zpool-rp
 0 S      0     1     0   TS  59        ?    688        ? ?         0:00 init
 1 S      0     2     0  SYS  98        ?      0        ? ?         0:00 pageout
 1 S      0     3     0  SYS  60        ?      0        ? ?         2:31 fsflush
 1 S      0     6     0  SDC  99        ?      0        ? ?         0:00 vmtasks
 0 S     16    56     1   TS  59        ?   1026        ? ?         0:01 ipmgmtd
 0 S      0     9     1   TS  59        ?   3480        ? ?         0:04 svc.star
 0 S      0    11     1   TS  59        ?   3480        ? ?         0:13 svc.conf
 0 S      0   162     1   TS  59        ?    533        ? ?         0:00 pfexecd
 0 S      0  1738  1730   TS  59        ?    817        ? pts/ 1       0:00 bash
 0 S      1   852     1   TS  59        ?    851        ? ?         0:17 rpcbind
 0 S     17    43     1   TS  59        ?   1096        ? ?         0:01 netcfgd
 0 S     15    47     1   TS  59        ?    765        ? ?         0:00 dlmgmtd
 0 S      0    68     1   TS  59        ?    694        ? ?         0:01 in.mpath
 0 S      1  1220     1   FX  60        ?    682        ? ?         0:00 nfs4cbd
 0 S     16    89     1   TS  59        ?   1673        ? ?         0:02 nwamd
 0 S      0   146     1   TS  59        ?    629        ? ?         0:01 dhcpagen
 0 S      1   129     1   TS  59        ?   1843        ? ?         0:00 kcfd
 0 S      1  1215     1   FX  60        ?    738        ? ?         0:00 lockd
 0 S      0   829   828   TS  59        ?    968        ? ?         0:00 hald-run
 0 S      0   361     1   TS  59        ?   1081        ? ?         0:01 devfsadm
 0 S      0   879     1   TS  59        ?   1166        ? ?         0:01 inetd
 0 O 119764  1773   880   TS  59        ?    557          cons ole     0:00 ps
 0 S      0   844   829   TS  59        ?    996        ? ?         0:00 hald-add
 0 S      0   895   866   TS  59        ?    590        ? ?         0:00 ttymon
 0 S      0   840     1   TS  59        ?    495        ? ?         0:00 cron
 0 S      0   874     1   TS  59        ?    425        ? ?         0:00 utmpd
 0 S      0  1724   956   TS  59        ?   2215        ? ?         0:00 sshd
 0 S 119764   880     9   TS  59        ?    565        ? cons ole     0:00 csh
 0 S      0   210     1   TS  59        ?   1622        ? ?         0:00 sysevent
 0 S      0   279     1   TS  59        ?    472        ? ?         0:00 iscsid
 0 S      1  1221     1   TS  59        ?   1349        ? ?         0:00 nfsmapid
 1 S      0   374     0  SDC  99        ?      0        ? ?         0:00 zpool-us
 0 S      0  1207     1   TS  59        ?   1063        ? ?         0:00 rmvolmgr
 0 S      0   828     1   TS  59        ?   1776        ? ?         0:03 hald
 0 S      0   853   829   TS  59        ?    896        ? ?         0:02 hald-add
 0 S      0   373     1   TS  59        ?    985        ? ?         0:00 picld
 0 S      0   299     1   TS  59        ?    836        ? ?         0:00 dbus-dae
 0 S  12524  1730  1725   TS  59        ?    452        ? pts/ 1       0:00 csh
 0 S      0   370     1   TS  59        ?    574        ? ?         0:00 powerd
 0 S      0   264     1   FX  60        ?    637        ? ?         0:00 zonestat
 0 S      0   866     9   TS  59        ?    555        ? ?         0:00 sac
 0 S      0   851   829   TS  59        ?    998        ? ?         0:00 hald-add
 0 S  12524  1725  1724   TS  59        ?   2732        ? ?         0:00 sshd
 0 S      1  1211     1   TS  59        ?    783        ? ?         0:00 statd
 0 S      0  1046     1   TS  59        ?   1770        ? ?         0:13 intrd
 0 S      0   889     1   TS  59        ?   1063        ? ?         0:00 syslogd
 0 S      0  1209     1   TS  59        ?    792        ? ?         0:00 in.ndpd
 0 S      0  1188  1186   TS  59        ?    951        ? ?         0:15 automoun
 0 S      0  1172   829   TS  59        ?    725        ? ?         0:00 hald-add
 0 S      0  1186     1   TS  59        ?    692        ? ?         0:00 automoun
 0 S    101  1739  1738   TS  59        ?    817        ? pts/ 1       0:00 bash
 0 S      0  1199     1   TS  59        ?   1495        ? ?         0:02 sendmail
 0 S      0   956     1   TS  59        ?   1729        ? ?         0:00 sshd
 0 S     25  1192     1   TS  59        ?   1528        ? ?         0:00 sendmail
 0 S      0   934     1   TS  59        ?   6897        ? ?         0:14 fmd
 0 S      0  1131     1   TS  59        ?   1691        ? ?         0:07 nscd
 0 S      1  1181     1   TS  59        ?    699        ? ?         0:00 ypbind
 

Définition de la priorité d'un processus (priocntl )

  1. Prenez le rôle root.

    Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  2. Démarrez un processus avec un niveau de priorité désigné.
    # priocntl -e -c class -m user-limit -p pri command-name
    -e

    Exécute la commande.

    -c class

    Spécifie la classe dans laquelle vous souhaitez exécuter le processus. Les classes valides sont TS (partage du temps), RT (temps réel), IA (interactive), FSS (partage équitable) et FX (priorité fixe).

    -m user-limit

    Lorsque vous utilisez l'option -p avec cette option, la quantité maximale dont vous pouvez augmenter ou diminuer votre priorité est également indiquée.

    -p pri command-name

    Permet de spécifier la priorité relative de la classe RT pour un thread en temps réel. Pour un processus de partage du temps, l'option -p vous permet de spécifier la priorité utilisateur, comprise entre -60 à +60.

  3. Vérifiez l'état du processus.
    # ps -ecl | grep command-name

Exemple 2-6 Désignation d'une priorité de processus (priocntl)

L'exemple ci-après illustre le démarrage de la commande find avec la priorité utilisateur la plus élevée possible.

# priocntl -e -c TS -m 60 -p 60 find . -name core -print
# ps -ecl | grep find

Modification des paramètres de planification d'un processus de partage du temps (priocntl)

  1. Prenez le rôle root.

    Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  2. Modifiez les paramètres de planification d'un processus de partage du temps en cours d'exécution.
    # priocntl -s -m user-limit [-p user-priority] -i idtype idlist
    -s

    Permet de définir la limite supérieure de la plage de priorité utilisateur et de modifier la priorité en cours.

    -m user-limit

    Lorsque vous utilisez l'option -p, indique le niveau maximum dont vous pouvez augmenter ou diminuer la priorité.

    -p user-priority

    Permet de définir une priorité.

    -i xidtype xidlist

    Utilise une combinaison des paramètres xidtype et xidlist pour identifier le ou les processus. Le paramètre xidtype spécifie le type d'ID, comme l'ID de processus ou l'ID utilisateur. Utilisez le paramètre xidlist pour identifier une liste des ID de processus ou des ID utilisateur.

  3. Vérifiez l'état du processus.
    # ps -ecl | grep idlist

Exemple 2-7 Modification des paramètres de planification d'un processus de partage du temps (priocntl )

L'exemple suivant illustre comment exécuter une commande avec une tranche de temps de 500 millisecondes, une priorité de 20 dans la classe RT et une priorité globale de 120.

# priocntl -e -c RT -m 500 -p 20 myprog
# ps -ecl | grep myprog

Modification de la classe d'un processus ( priocntl)

  1. (Facultatif) Prenez le rôle root.

    Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  2. Modification de la classe d'un processus
    # priocntl -s -c class -i idtype idlist
    -s

    Permet de définir la limite supérieure de la plage de priorité utilisateur et de modifier la priorité en cours.

    -c class

    Spécifie la classe, TS pour le partage du temps ou RT pour le temps réel, que vous affectez au processus.

    -i idtype idlist

    Utilise une combinaison des paramètres xidtype et xidlist pour identifier le ou les processus. Le processus xidtype spécifie le type d'ID, par exemple l'ID de processus ou l'ID utilisateur. Utilisez le paramètre xidlist pour identifier une liste des ID de processus ou des ID utilisateur.


    Remarque - Vous devez prendre le rôle root ou utiliser un shell en temps réel pour modifier un processus depuis ou vers un processus en temps réel. Si, en tant qu'utilisateur root, vous affectez un processus utilisateur à la classe en temps réel, l'utilisateur ne pourra pas modifier les paramètres de programmation en temps réel en utilisant la commande priocntl -s.


  3. Vérifiez l'état du processus.
    # ps -ecl | grep idlist

Exemple 2-8 Modification de la classe d'un processus (priocntl)

L'exemple suivant illustre comment modifier tous les processus qui appartiennent à l'utilisateur 15249 pour les affecter aux processus en temps réel.

# priocntl -s -c RT -i uid 15249
# ps -ecl | grep 15249

Modification de la priorité d'un processus de partage du temps (nice)

La commande nice est prise en charge uniquement à des fins de compatibilité en amont avec les versions antérieures. La commande priocntl accroît la flexibilité dans la gestion des processus.

La priorité d'un processus est définie par les stratégies de sa classe de programmation et par son nombre nice. Chaque processus de partage du temps comporte une priorité globale. La priorité globale est calculée en ajoutant la priorité utilisateur, qui peut être influencée par les commandes nice et priocntl, et la priorité calculée par le système.

Le numéro de priorité d'exécution d'un processus est attribué par le système d'exploitation. Le numéro de priorité est déterminé par plusieurs facteurs, notamment la classe de programmation du processus, le temps CPU utilisé et, dans le cas d'un processus de partage du temps, son nombre nice.

Chaque processus de partage du temps commence avec un nombre nice par défaut, qu'il hérite de son processus parent. Le nombre nice est indiqué dans la colonne NI du rapport ps.

Un utilisateur peut diminuer la priorité d'un processus en augmentant sa priorité utilisateur. Cependant, seul le superutilisateur peut réduire un nombre nice pour augmenter la priorité d'un processus. Cette restriction empêche les utilisateurs d'augmenter les priorités de leurs propres processus, ce qui monopolise une plus grande part de la CPU.

Les nombres nice sont compris entre 0 et +39, où 0 représente la priorité la plus élevée. La valeur par défaut nice de chaque processus de partage du temps est de 20. Deux versions de la commande sont disponibles : la version standard, /usr/bin/nice, et la commande intégrée au shell C.

Modification de la priorité d'un processus (nice)

A l'aide de cette procédure, un utilisateur peut diminuer la priorité d'un processus. Toutefois, le rôle root peut augmenter ou diminuer la priorité d'un processus.

  1. Déterminez si vous souhaitez changer la priorité d'un processus, en tant qu'utilisateur ou en tant que superutilisateur. Sélectionnez ensuite l'un des éléments suivants :
    • En tant qu'utilisateur, suivez les exemples de l'étape 2 pour diminuer la priorité d'une commande.
    • En tant que superutilisateur, suivez les exemples de l'étape 3 pour augmenter ou diminuer les priorités d'une commande.
  2. En tant qu'utilisateur, réduisez la priorité d'une commande en augmentant le nombre nice.

    La commande nice suivante exécute command-name avec une priorité inférieure en augmentant la valeur du nombre nice de 5 unités.

    $ /usr/bin/nice -5 command-name

    Dans la commande ci-dessus, le signe moins indique que ce qui suit est une option. Cette commande peut également être définie comme suit :

    $ /usr/bin/nice -n 5 command-name

    La commande nice suivante réduit la priorité de command-name en augmentant le nombre nice de l'incrément par défaut de 10 unités, mais pas au-delà de la valeur maximale de 39.

    $ /usr/bin/nice command-name
  3. En tant que superutilisateur, augmentez ou diminuez la priorité d'une commande en modifiant le nombre nice.

    La commande nice suivante augmente la priorité de command-name en réduisant le nombre nice de 10 unités, mais pas en dessous de la valeur minimale de 0.

    # /usr/bin/nice --10 command-name

    Dans la commande ci-dessus, le premier signe moins indique que ce qui suit est une option. Le deuxième signe moins indique un nombre négatif.

    La commande nice suivante réduit la priorité de command-name en augmentant le nombre nice de 5 unités, mais pas au-delà de la valeur maximale de 39.

    # /usr/bin/nice -5 command-name

Voir aussi

Pour plus d'informations, reportez-vous à la page de manuel nice(1).