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
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)
Cette section décrit les différentes tâches de gestion des processus système.
|
Le tableau suivant décrit les commandes de gestion des processus système.
Tableau 2-1 Commandes de gestion des processus
|
La commande ps vous permet de vérifier l'état des processus actifs sur un système et d'afficher des informations techniques sur les processus. Ces données sont utiles pour les tâches d'administration telles que la détermination des priorités des processus.
En fonction des options utilisées, la commande ps indique les informations suivantes :
Etat actuel du processus
ID de processus
ID du processus parent
Identifiant utilisateur
Classe de programmation
Priorité
Adresse du processus
Mémoire utilisée
Temps CPU utilisé
Le tableau suivant décrit certains champs indiqués par la commande ps. Les champs affichés dépendent de l'option choisie. Pour une description de toutes les options disponibles, reportez-vous à la page de manuel ps(1).
Tableau 2-2 Récapitulatif des champs des rapports ps
|
Vous pouvez afficher des informations détaillées sur les processus répertoriés dans le répertoire /proc à l'aide des commandes du processus. Le tableau suivant répertorie les commandes du processus /proc. Le répertoire /proc est également connu comme le système de fichiers du processus (PROCFS). Les images des processus actifs sont stockées ici en fonction du numéro d'identification du processus.
Tableau 2-3 Commandes du processus (/proc )
|
Pour plus d'informations, reportez-vous à proc(1).
Les outils de processus sont similaires à certaines options de la commande ps, à l'exception du fait que la sortie fournie par ces commandes est plus détaillée.
En règle générale, les commandes du processus effectuent les opérations suivantes :
Affichage d'informations supplémentaires sur les processus, comme les répertoires fstat et fcntl, de travail et les arborescences des processus parents et enfants.
Contrôle des processus en autorisant les utilisateurs à les arrêter ou à les reprendre.
Vous pouvez afficher des informations techniques détaillées sur les processus ou contrôler les processus actifs à l'aide de certaines commandes de processus. Le Tableau 2-3 répertorie certaines commandes /proc.
Si un processus est piégé dans une boucle infinie ou si son exécution prend trop de temps, vous pouvez arrêter le processus. Pour plus d'informations sur l'arrêt des processus à l'aide de la commande kill ou pkill, reportez-vous au Chapitre 2, Gestion des processus système (tâches).
Le système de fichiers /proc est une hiérarchie de répertoires qui contient des sous-répertoires supplémentaires pour les informations d'état et les fonctions de contrôle.
Le système de fichiers /proc fournit également une fonction xwatchpoint qui sert à reconfigurer les autorisations de lecture/écriture sur les différentes pages de l'espace d'adresse d'un processus. Cette fonction n'a pas de restrictions et est MT-safe.
Les outils de débogage ont été modifiés de façon à utiliser la fonction xwatchpoint de /proc, ce qui signifie que l'ensemble du processus xwatchpoint est plus rapide.
Les restrictions suivantes ont été supprimées lorsque vous définissez des xwatchpoints à l'aide de l'outil de débogage dbx :
Définition des xwatchpoints sur des variables locales de la pile en raison des fenêtres de registre du système SPARC.
Définition des xwatchpoints sur les processus multithread.
Pour plus d'informations, reportez-vous aux pages de manuel proc(4) et mdb(1).
$ ps [-efc]
Affiche uniquement les processus associés à votre session de connexion.
Affiche des informations complètes sur tous les processus en cours d'exécution sur le système.
Affiche les informations sur le planificateur de processus.
Exemple 2-1 Liste des processus
L'exemple suivant illustre la sortie de la commande ps lorsque aucune option n'est utilisée.
$ ps PID TTY TIME COMD 1664 pts/4 0:06 csh 2081 pts/4 0:00 ps
L'exemple suivant illustre la sortie de la commande ps - ef. Cette sortie indique que le premier processus exécuté lorsque le système s'initialise est sched (le swappeur) suivi du processus init, pageout, et ainsi de suite.
$ ps -ef UID PID PPID C STIME TTY TIME CMD root 0 0 0 18:04:04 ? 0:15 sched root 5 0 0 18:04:03 ? 0:05 zpool-rpool root 1 0 0 18:04:05 ? 0:00 /sbin/init root 2 0 0 18:04:05 ? 0:00 pageout root 3 0 0 18:04:05 ? 2:52 fsflush root 6 0 0 18:04:05 ? 0:02 vmtasks daemon 739 1 0 19:03:58 ? 0:00 /usr/lib/nfs/nfs4cbd root 9 1 0 18:04:06 ? 0:14 /lib/svc/bin/svc.startd root 11 1 0 18:04:06 ? 0:45 /lib/svc/bin/svc.configd daemon 559 1 0 18:04:49 ? 0:00 /usr/sbin/rpcbind netcfg 47 1 0 18:04:19 ? 0:01 /lib/inet/netcfgd dladm 44 1 0 18:04:17 ? 0:00 /sbin/dlmgmtd netadm 51 1 0 18:04:22 ? 0:01 /lib/inet/ipmgmtd root 372 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-cpufreq root 67 1 0 18:04:30 ? 0:02 /lib/inet/in.mpathd root 141 1 0 18:04:38 ? 0:00 /usr/lib/pfexecd netadm 89 1 0 18:04:31 ? 0:03 /lib/inet/nwamd root 602 1 0 18:04:50 ? 0:02 /usr/lib/inet/inetd start root 131 1 0 18:04:35 ? 0:01 /sbin/dhcpagent daemon 119 1 0 18:04:33 ? 0:00 /lib/crypto/kcfd root 333 1 0 18:04:41 ? 0:07 /usr/lib/hal/hald --daemon=yes root 370 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-network-discovery root 159 1 0 18:04:39 ? 0:00 /usr/lib/sysevent/syseventd root 236 1 0 18:04:40 ? 0:00 /usr/lib/ldoms/drd root 535 1 0 18:04:46 ? 0:09 /usr/sbin/nscd root 305 1 0 18:04:40 ? 0:00 /usr/lib/zones/zonestatd root 326 1 0 18:04:41 ? 0:03 /usr/lib/devfsadm/devfsadmd root 314 1 0 18:04:40 ? 0:00 /usr/lib/dbus-daemon --system . . .
# pgrep process
où process est le nom du processus dont vous souhaitez afficher plus d'informations.
L'ID de processus s'affiche dans la première colonne de la sortie.
# /usr/bin/pcommand pid
Représente la commande (/proc) à exécuter. Le Tableau 2-3 répertorie et décrit ces commandes.
Identifie l'ID de processus.
Exemple 2-2 Affichage des informations sur les processus
L'exemple suivant illustre le mode d'utilisation des commandes de processus pour afficher de plus amples informations sur un processus cron.
# pgrep cron 1 4780 # pwdx 4780 2 4780: /var/spool/cron/atjobs # ptree 4780 3 4780 /usr/sbin/cron # pfiles 4780 4 4780: /usr/sbin/cron Current rlimit: 256 file descriptors 0: S_IFCHR mode:0666 dev:290,0 ino:6815752 uid:0 gid:3 rdev:13,2 O_RDONLY|O_LARGEFILE /devices/pseudo/mm@0:null 1: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771 O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE /var/cron/log 2: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771 O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE /var/cron/log 3: S_IFIFO mode:0600 dev:32,128 ino:42049 uid:0 gid:0 size:0 O_RDWR|O_LARGEFILE /etc/cron.d/FIFO 4: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0 O_RDWR|O_NONBLOCK 5: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0 O_RDWR
Obtient l'ID du processus cron.
Affiche le répertoire de travail actuel du processus cron.
Affiche l'arborescence des processus qui contient le processus cron.
Affiche les informations fstat et fcntl.
# pgrep process
où process est le nom du processus à contrôler.
L'ID de processus apparaît dans la première colonne de la sortie.
# /usr/bin/pcommand pid
Représente la commande de processus (/proc) à exécuter. Le Tableau 2-3 répertorie et décrit ces commandes.
Identifie l'ID de processus.
# ps -ef | grep pid
Il est parfois nécessaire d'arrêter (interrompre) un processus. Le processus peut se trouver dans une boucle infinie. Ou bien, vous pouvez avoir démarré un grand travail que vous souhaitez arrêter avant qu'il ne soit terminé. Vous pouvez interrompre un processus que vous possédez. Un superutilisateur peut interrompre tout processus du système à l'exception des processus dotés des ID 0, 1, 2, 3 et 4. L'interruption de ces processus risque de provoquer la panne du système.
Pour plus d'informations, reportez-vous aux pages de manuel pgrep(1), pkill(1) et kill(1).
$ pgrep process
où process est le nom du processus à terminer.
Par exemple :
$ pgrep netscape 587 566
L'ID de processus s'affiche dans la sortie.
Remarque - Pour obtenir plus d'informations sur un processus Sun Ray, utilisez les commandes suivantes :
# ps -fu user
Cette commande répertorie tous les processus utilisateur.
# ps -fu user | grep process
Cette commande recherche un processus spécifique pour un utilisateur.
$ pkill [signal] process
Lorsque aucun signal n'est inclus dans la syntaxe de ligne de commande pkill, le signal utilisé par défaut est –15 (SIGKILL). Utiliser le signal –9 (SIGTERM) avec la commande pkill garantit la fin du processus dans les plus brefs délais. Cependant, le signal –9 ne doit pas être utilisé pour arrêter certains processus, par exemple un processus de base de données ou de serveur LDAP. Cela pourrait entraîner la perte des données.
Représente le nom du processus à arrêter.
Astuce - Lorsque vous utilisez la commande pkill pour interrompre un processus, utilisez d'abord la commande proprement dite, sans y inclure une option de signal. Attendez quelques minutes pour voir si le processus se termine avant d'utiliser la commande pkill avec le signal -9.
$ pgrep process
Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.
# ps -fu user
où user est l'utilisateur dont vous souhaitez afficher les processus.
L'ID de processus s'affiche dans la première colonne de la sortie.
# kill [signal-number] pid
Lorsque aucun signal n'est inclus dans la syntaxe de ligne de commande kill, le signal utilisé par défaut est –15 (SIGKILL). Utiliser le signal –9 (SIGTERM) avec la commande kill garantit la fin du processus dans les plus brefs délais. Cependant, le signal –9 ne doit pas être utilisé pour arrêter certains processus, par exemple un processus de base de données ou de serveur LDAP. Cela pourrait entraîner la perte des données.
Représente l'ID du processus à arrêter.
Astuce - Lorsque vous utilisez la commande kill pour arrêter un processus, utilisez d'abord la commande proprement dite, sans y inclure une option de signal. Attendez quelques minutes pour voir si le processus se termine avant d'utiliser la commande kill avec le signal -9.
$ pgrep pid
Le processus interrompu ne doit plus figurer dans la sortie de la commande pgrep.
Les commandes pargs et preap améliorent le débogage des processus. La commande pargs imprime les arguments et les variables d'environnement associées à un processus en direct ou à un fichier noyau. La commande preap supprime les processus défunts (zombies). Un processus zombie n'a pas encore vu son état de sortie réclamé par son parent. Ces processus sont généralement inoffensifs mais peuvent consommer des ressources système s'ils sont nombreux. Vous pouvez utiliser les commandes pargs et preap pour examiner les processus dont vous souhaitez examiner les privilèges. En tant que superutilisateur, vous pouvez examiner les processus.
Pour plus d'informations sur l'utilisation de la commande preap, reportez-vous à la page de manuelpreap(1). Pour plus d'informations sur l'utilisation de la commande pargs, reportez-vous à la page de manuel pargs(1). Reportez-vous également à la page de manuel proc(1).
Exemple 2-3 Débogage d'un processus (pargs)
La commande pargs résout un problème de longue date lié à l'impossibilité d'afficher avec la commande ps tous les arguments transmis à un processus. L'exemple suivant illustre comment utiliser la commande pargs avec la commande pgrep pour afficher les arguments transmis à un processus.
# pargs `pgrep ttymon` 579: /usr/lib/saf/ttymon -g -h -p system-name console login: -T sun -d /dev/console -l argv[0]: /usr/lib/saf/ttymon argv[1]: -g argv[2]: -h argv[3]: -p argv[4]: system-name console login: argv[5]: -T argv[6]: sun argv[7]: -d argv[8]: /dev/console argv[9]: -l argv[10]: console argv[11]: -m argv[12]: ldterm,ttcompat 548: /usr/lib/saf/ttymon argv[0]: /usr/lib/saf/ttymon
L'exemple suivant illustre comment utiliser la commande pargs - e pour afficher les variables d'environnement associées à un processus.
$ pargs -e 6763 6763: tcsh envp[0]: DISPLAY=:0.0