Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d’administration système : administration avancée Oracle Solaris 10 1/13 Information Library (Français) |
1. Gestion des terminaux et modems (présentation)
2. Configuration des terminaux et modems (tâches)
3. Gestion des ports série avec la fonction d'accès aux services (tâches)
4. Gestion des ressources système (présentation)
5. Affichage et modification des informations système (tâches)
6. Gestion de l'utilisation du disque (tâches)
7. Gestion des quotas UFS (tâches)
8. Tâches de planification du système (tâches)
9. Gestion de la comptabilisation du système (tâches)
10. Comptabilisation du système (référence)
11. Gestion des performances du système (présentation)
12. 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 avec les 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 (liste des tâches)
Gestion des informations sur les classes de processus
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
13. Surveillance des performances du système (tâches)
14. Résolution des problèmes logiciels (présentation)
15. Gestion des messages système
16. Gestion des fichiers noyau (tâches)
17. Gestion des informations sur les pannes système (tâches)
18. Résolution de problèmes logiciels divers (tâches)
19. Résolution des problèmes d'accès aux fichiers (tâches)
20. Résolution des incohérences d'un système de fichiers UFS (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 12-5 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 12-6 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 montrent que le processus pageout a la priorité la plus élevée, tandis que le processus sh a la priorité la plus faible.
$ ps -ecl F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME COMD 19 T 0 0 0 SYS 96 f00d05a8 0 ? 0:03 sched 8 S 0 1 0 TS 50 ff0f4678 185 ff0f4848 ? 36:51 init 19 S 0 2 0 SYS 98 ff0f4018 0 f00c645c ? 0:01 pageout 19 S 0 3 0 SYS 60 ff0f5998 0 f00d0c68 ? 241:01 fsflush 8 S 0 269 1 TS 58 ff0f5338 303 ff49837e ? 0:07 sac 8 S 0 204 1 TS 43 ff2f6008 50 ff2f606e console 0:02 sh
Les rôles contiennent des autorisations et des commandes privilégiées. Pour plus d'informations sur les rôles, reportez-vous à la section Configuration de RBAC (liste des tâches) du manuel Guide d’administration système : 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, indique le niveau maximum dont vous pouvez augmenter ou diminuer votre priorité.
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 12-7 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
Les rôles contiennent des autorisations et des commandes privilégiées. Pour plus d'informations sur les rôles, reportez-vous à la section Configuration de RBAC (liste des tâches) du manuel Guide d’administration système : 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 12-8 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
# 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 être connecté en tant que superutilisateur ou utiliser un shell en temps réel pour modifier un processus depuis ou vers un processus en temps réel. Si, en tant que superutilisateur, 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 12-9 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 rétrocompatibilité avec les versions antérieures de Solaris. 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. Cependant, un superutilisateur peut augmenter ou diminuer la priorité d'un processus.
Remarque - Cette section décrit la syntaxe de la commande /usr/bin/nice et non celle de la commande niceintégrée au shell C. Pour plus d'informations sur la commande nice du shell C, reportez-vous à la page de manuel csh(1).
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 nom-commande 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).