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) |
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
Gestion des processus système (liste des tâches)
Commandes de gestion des processus système
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
Arrêt d'un processus (pkill, 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)
Résolution des problèmes liés aux processus système
3. Surveillance des performances du système (tâches)
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 :
Partage équitable (FSS)
Fixe (FX)
Système (SYS)
Interactive (IA)
Temps réel (RT)
La priorité d'un processus est héritée du processus parent. Cette priorité est désignée comme la priorité en mode utilisateur.
Le système recherche la priorité en mode utilisateur dans le tableau de paramètres de répartition de partage du temps. Ensuite, le système l'ajoute dans la priorité nice ou priocntl (fournie par l'utilisateur) et garantit une plage de 0–59 pour créer une priorité globale.
|
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 ).
$ priocntl -l
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
$ ps -ecl
La priorité globale figure sous la colonne PRI.
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
Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.
# priocntl -e -c class -m user-limit -p pri command-name
Exécute la commande.
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).
Lorsque vous utilisez l'option -p avec cette option, la quantité maximale dont vous pouvez augmenter ou diminuer votre priorité est également indiquée.
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.
# 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
Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.
# priocntl -s -m user-limit [-p user-priority] -i idtype idlist
Permet de définir la limite supérieure de la plage de priorité utilisateur et de modifier la priorité en cours.
Lorsque vous utilisez l'option -p, indique le niveau maximum dont vous pouvez augmenter ou diminuer la priorité.
Permet de définir une priorité.
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.
# 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
Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.
# priocntl -s -c class -i idtype idlist
Permet de définir la limite supérieure de la plage de priorité utilisateur et de modifier la priorité en cours.
Spécifie la classe, TS pour le partage du temps ou RT pour le temps réel, que vous affectez au processus.
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.
# 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
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.
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.
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
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).