Comment suivre un processus dans Linux CPU, de la Mémoire et du temps
Comment puis-je repère un processus dans Linux? J'ai besoin de quelque chose comme "haut" et le "temps" mettre ensemble pour un particulier nom du processus (c'est un multi process programme ainsi de nombreuses PIDs sera donnée)?
En outre, je voudrais avoir une parcelle de plus de temps de la mémoire et de processeur pour ces processus et pas seulement des chiffres définitifs.
Des idées?
OriginalL'auteur Pedro | 2013-06-06
Vous devez vous connecter pour publier un commentaire.
Suivantes sont les outils pour la surveillance d'un système linux
top
,free -m
,vmstat
,iostat
,iotop
,sar
,netstat
, etc. Rien ne vient près de ces linux utilitaire lorsque vous déboguez un problème. Ces commandes vous donner une image claire qui se passe à l'intérieur de votre serveurOriginalL'auteur stylusbrook
En général, je jeter ensemble un script simple pour ce type de travail.
Prendre un coup d'oeil à la documentation du noyau pour le système de fichiers /proc (Google 'linux proc.txt').
La première ligne de
/proc/stat
(Section 1.8 proc.txt) vous donnera cumulative d'utilisation de l'uc stats (c'est à dire l'utilisateur, de nice, de système, de repos, ...). Pour chaque processus, le fichier/proc/$PID/stat
(Tableau 1-4) dans proc.txt) vous fournira des processus spécifiques d'utilisation de l'uc statistiques et utilisation de la mémoire stats (voir rss).Si vous google un peu, vous trouverez beaucoup d'informations détaillées sur ces fichiers, et des pointeurs vers des bibliothèques /apps /extraits de code qui peuvent vous aider à obtenir /dériver les valeurs dont vous avez besoin. Avec cela à l'esprit, je vais me concentrer sur la stratégie de haut niveau.
Pour le CPU stats, utilisez votre langage de script favori pour créer un exécutable qui prend un ensemble d'id de processus pour la surveillance. À un intervalle fixe (ex: 1 seconde) sondage /calculer les totaux cumulatifs pour chaque processus et le système dans son ensemble. Au cours de chaque intervalle de sondage, écrire tous les résultats sur une seule ligne sur la sortie standard stdout.
Pour mémoire stats, écrire un script similaire, mais il suffit de connecter le processus de l'utilisation de la mémoire. La mémoire est un peu plus facile, comme nous l'obtenir directement les valeurs instantanées.
Exécuter ces scripts pour la durée de votre test, le passage de l'ensemble du processus d'id que vous voulez surveiller et de rediriger sa sortie dans un fichier journal.
Importer le contenu de ces fichiers dans une feuille de calcul (pour certaines applications, c'est aussi facile que de copier /coller). Pour le CPU, vous êtes après, valeurs instantanées, mais ont des valeurs cumulatives, de sorte que vous aurez besoin de faire quelques petites tableur de travail pour calculer ces valeurs (c'est juste le delta t(x + 1) - t(x)"). Bien sûr, vous pourriez avoir votre cpu enregistreur écrire le delta, mais vous allez passer un peu plus de temps devant vous, sur le script.
Enfin, l'utilisation de votre feuille de calcul pour générer une belle parcelle.
OriginalL'auteur Richard Troxell