Je veux obtenir l'utilisation du processeur et de la mémoire d'un seul processus sous Linux - je connais le PID. J'espère que je peux l'obtenir toutes les secondes et l'écrire dans un CSV en utilisant la commande «watch». Quelle commande puis-je utiliser pour obtenir ces informations à partir de la ligne de commande Linux?
linux
shell
memory-management
cpu-usage
Supertux
la source
la source
Réponses:
(Vous pouvez laisser «cmd» désactivé mais cela peut être utile pour le débogage).
Notez que cela donne l'utilisation moyenne du processeur du processus pendant la durée de son exécution.
la source
| tail -n +2
ps
). Ce n'est pas la vraie utilisation du processeur juste à temps. Cela peut aussi être très différent de ce quetop
montre, par exemple.ps -e -o pcpu,args
affichera la moyenne du processeur sur la durée de vie du processus, ce qui n'est évidemment pas ce que vous voulez s'il s'agit d'un processus de longue duréeUne variante de la réponse de caf :
top -p <pid>
Cela actualise automatiquement l'utilisation du processeur, c'est donc bon pour la surveillance.
la source
pgrep
:top -p $(pgrep process_name)
Vous pouvez obtenir les résultats par le nom du processus en utilisant
l'
-C
option vous permet d'utiliser le nom du processus sans connaître son pid.la source
pid
seulement devrait fonctionner.ps -C chrome -o pid,%cpu,%mem,cmd
Utilisez pidstat (depuis sysstat - Refer Link ).
Par exemple, pour surveiller ces deux ID de processus (12345 et 11223) toutes les 5 secondes, utilisez
la source
pidstat
que c'est une excellente commande, et aussi pratique pour les scripts!pidstat
donne aussi une belle moyenne. juste dommage que je n'ai pas trouvé de moyen plus élégant depidstat -u 1 10 | grep ^Average | sort -r -n -b -k 8,8
ps
commande (ne doit pas utiliser):top
commande (devrait utiliser):Utilisez
top
pour obtenir l'utilisation du processeur en temps réel (intervalle court actuel):top -b -n 2 -d 0.2 -p 6962 | tail -1 | awk '{print $9}'
fera écho comme:
78.6
-b
: Temps différé-n 2
: Nombre d'itérations, utilisez2
parce que: Lorsque vous l'exécutez pour la première fois, il n'a pas d'exemple précédent à comparer, donc ces valeurs initiales sont les pourcentages depuis le démarrage.-d 0.2
: Temps de retard (en seconde, ici 200ms)-p 6962
: Moniteur-PIDtail -1
: la dernière ligneawk '{print $9}'
: la 9ème colonne (le numéro d'utilisation du processeur)la source
Lancer un programme et le surveiller
Ce formulaire est utile si vous souhaitez comparer facilement un exécutable:
Maintenant, lorsque vous appuyez sur Ctrl + C, il quitte le programme et arrête la surveillance. Exemple de sortie:
En relation: /unix/554/how-to-monitor-cpu-memory-usage-of-a-single-process
Testé sur Ubuntu 16.04.
la source
Vous pouvez utiliser
top -b
et extraire le pid de votre choix (avec l'-b
indicateur top s'exécute en mode batch), ou également utiliser l'-p
indicateur et spécifier le pid sans utiliser grep.la source
Comme indiqué dans la réponse de caf ci-dessus, ps et dans certains cas pidstat vous donneront la moyenne de la durée de vie du pCPU. Pour obtenir des résultats plus précis, utilisez top. Si vous devez exécuter top une fois que vous pouvez exécuter:
ou pour traiter uniquement les données et l'en-tête:
sans en-têtes:
la source
ou par processus
la source
Pour ceux qui ont lutté pendant un certain temps se demandant pourquoi la réponse choisie ne fonctionne pas:
Pas d'espace entre
%cpu,
et%mem
.la source
La commande suivante obtient la moyenne de l'utilisation du processeur et de la mémoire toutes les 40 secondes pour un processus spécifique (pid)
Sortie pour mon cas (deux premières lignes pour l'utilisation du processeur, deux secondes pour la mémoire):
la source
Pour obtenir l'utilisation de la mémoire de votre application uniquement (par opposition aux bibliothèques partagées qu'elle utilise, vous devez utiliser l'interface smaps Linux). Cette réponse l'explique bien .
la source
où la première colonne est le PID, l'utilisation du processeur de la deuxième colonne, l'utilisation de la mémoire de la troisième colonne.
la source
PID - ID de processus
etime - Exécution du processus / Durée en direct
% cpu - utilisation du processeur
% mem - Utilisation de la mémoire
cmd - Commande
Remplacez processname par le processus que vous souhaitez suivre, mysql nginx php-fpm etc ...
la source
Toutes les réponses ici ne montrent que le pourcentage de mémoire pour le PID.
Voici un exemple de la façon d'obtenir l'utilisation de la mémoire rss en Ko pour tous les processus apache, remplacez "grep apache" par "grep PID" si vous voulez juste regarder un PID spécifique:
Cela imprime:
Avec CPU%:
Production:
la source
C'est une belle astuce pour suivre un ou plusieurs programmes en temps réel tout en regardant la sortie d'un autre outil:
watch "top -bn1 -p$(pidof foo),$(pidof bar); tool"
la source
(Si vous êtes sous MacOS 10.10, essayez l'option -c cumulative de top:
(Cette option n'est pas disponible dans d'autres Linux, essayée avec Scientific Linux el6 et RHEL6)
la source
Ci-dessus la liste des meilleurs processeurs et processus de consommation de mémoire
la source
Basé sur la réponse de @ caf, cela fonctionne très bien pour moi.
Calculer la moyenne pour un PID donné:
mesure.sh
Usage:
la source
Utilisation du processeur et de la mémoire d'un seul processus sous Linux ou vous pouvez obtenir les 10 meilleurs processus utilisés par le processeur en utilisant la commande ci-dessous
ps -aux --sort -pcpu | tête -n 11
la source