Comment utiliser pstack et gcore pour recueillir des données supplémentaires pour le support

Article: 100040930
Dernière publication: 2017-11-08
Evaluations: 0 0
Produit(s): InfoScale & Storage Foundation
Description du problème

Le support demande parfois des sorties de données des commandes pstack et gcore. Ces commandes sont disponibles sous Solaris, HP-UX, AIX et LINUX.

pstack

La commande pstack imprime une image mémoire hexadécimale de la pile de processus et fournit donc des informations importantes sur un processus suspect sur le système affecté.

[root@walv215-a1j:mgeiser]#pstack 1094
1094:   /usr/lib/sendmail -bd -q15m
fefc6004 pollsys  (ffbfd080, 3, ffbfd128, 0)
fef66f20 pselect  (ffbfd080, feff2530, feff2530, 40, ffbfd128, 0) + 1c8
fef67298 select   (8, ffbfdb18, 0, 0, ffbfdb10, 109400) + a0
0002852c getrequests (121744, 7, 7, 11c388, 11c2f8, 3) + 690
00048a94 main     (0, 13f800, 64, 10f800, 121c00, e8c00) + 5b68
0001f6e0 _start   (0, 0, 0, 0, 0, 0) + 108

Cette commande peut également être utilisée avec les fichiers noyaux.

# pstack core.httpd.1008
core 'core.httpd.1008' of 1008: /opt/IBMHTTPD/bin/httpd
-----------------  lwp# 1 / thread# 1  --------------------
0002e3e8 ???????? (ffbeee7c, 1425, d, a16f0, 82b68, 9b098)
00031188 main     (1, ffbeef94, 96408, ff238018, ff23b03c, 82cf0) + 478
00031bec parse_byterange (1, ffbeef94, ffbeef9c, 96000, 0, 0) + 484
00017308 load_module (0, 0, 0, 0, 0, 0) + 140
-----------------  lwp# 2 / thread# 2  --------------------
ff21ad54 _signotifywait (ff16e000, 0, 0, ff23b540, 0, 0) + 8
ff151ae4 thr_yield (0, 0, 0, 0, 0, 0) + 8c
-----------------  lwp# 3 / thread# 3  --------------------
ff21b3e0 _lwp_sema_wait (fe30de30, ff16e000, 0, fe30dd78, 250c4, 0) + c
ff14944c _swtch   (fe30dd78, fe30dd78, ff16e000, 5, 1000, 1) + 424
ff14d8a4 _reap_wait (ff172a08, 20a38, 0, ff16e000, 0, 0) + 38
ff14d5fc _reaper  (ff16ee30, ff255d18, ff172a08, ff16ee08, 0,
fe400000) + 38
ff15ba1c _thread_start (0, 0, 0, 0, 0, 0) + 40
#

Cette commande est disponible et peut être utilisée sous HP-UX, AIX et LINUX

gcore

 
La commande gcore est utilisée pour générer manuellement une image mémoire du noyau. Une image mémoire du noyau est un snapshot de la mémoire occupée par un processus qui fournit également des informations de débogage supplémentaires. Les fichiers noyaux sont généralement générés quand un processus se termine inopinément. Cette note technique décrit comment générer manuellement un fichier noyau à partir d’un processus en cours d’exécution
 
Cette commande est disponible et peut uniquement être utilisée sous Solaris et LINUX.
 
Solution
 
Les commandes gcore et pstack sont généralement utilisées ensemble dans une procédure de dépannage :
 

Pour obtenir les sorties pstack et gcore, procédez comme suit :

(1) Obtenez l’ID du processus suspect :

# ps -eaf | grep -i  suspect_process

2) Utilisez l’ID de processus pour générer la sortie gcore :

# gcore <proc_id>
 
Un fichier core.<proc_id> est généré dans le répertoire actuel.


(3) Générez maintenant la sortie pstack d’après le fichier gcore généré :

# pstack core.<proc_id>

(4) Créez ensuite une archive .tar compressée avec le fichier gcore.xxx et la sortie de la commande pstack.

Ce contenu était-il utile ?