Récupérer L'utilisation CPU et l'utilisation de la mémoire d'un seul processus sur Linux?

je veux obtenir le CPU et l'utilisation de mémoire d'un seul processus sur Linux - je connais le PID. Avec un peu de chance, je peux l'obtenir à chaque seconde et l'écrire à un CSV en utilisant la commande "watch". Quelle commande puis-je utiliser pour obtenir ces informations depuis la ligne de commande Linux?

134
demandé sur jww 2009-08-03 14:13:50

15 réponses

ps -p <pid> -o %cpu,%mem,cmd

(vous pouvez laisser" cmd " mais cela pourrait être utile pour le débogage).

notez que cela donne L'utilisation CPU moyenne du processus au cours de la période où il a été exécuté.

177
répondu caf 2017-11-14 01:10:43

une variante de réponse de caf : top -p <pid>

cette auto-rafraîchit l'utilisation du CPU afin qu'il soit bon pour la surveillance.

54
répondu Manki 2017-05-23 12:26:24

vous pouvez obtenir les résultats par le nom du processus en utilisant

ps -C chrome -o %cpu,%mem,cmd

l'option -C vous permet d'utiliser le nom du processus sans savoir que c'est pid.

31
répondu amit 2014-07-21 13:08:45

Utilisation pidstat (à partir de sysstat - Consulter le Lien ).

p.ex. pour surveiller ces deux codes de procédé (12345 et 11223) toutes les 5 secondes, utiliser

$ pidstat -h -r -u -v -p 12345,11223 5
16
répondu Neon 2016-03-24 12:35:53

lancer un programme et le surveiller

ce formulaire est utile si vous voulez référencer facilement un exécutable:

topp() (
  $* &>/dev/null &
  pid="$!"
  trap ':' INT
  echo 'CPU  MEM'
  while sleep 1; do ps --no-headers -o '%cpu,%mem' -p "$pid"; done
  kill "$pid"
)
topp ./myprog arg1 arg2

maintenant quand vous appuyez sur Ctrl + C il sort du programme et cesse la surveillance. Sortie de l'échantillon:

CPU  MEM
20.0  1.3
35.0  1.3
40.0  1.3

testé sur Ubuntu 16.04.

6

vous pouvez utiliser top -b et récupérer le pid que vous voulez (avec le haut du drapeau -b fonctionne en mode batch), ou aussi utiliser le drapeau -p et spécifier le pid sans utiliser le grep.

4
répondu Alberto Zaccagni 2013-04-19 15:50:44
ps aux | awk '{print "\t"}' | sort | uniq -c | awk '{print " "" "}' | sort -nr

ou par procédé

ps aux | awk '{print "\t"}' | sort | uniq -c | awk '{print " "" "}' | sort -nr |grep mysql
4
répondu Patel95 2013-04-26 19:55:00

comme commenté dans réponse de caf ci-dessus, ps et dans certains cas pidstat vous donnera la moyenne à vie du pCPU. Pour obtenir des résultats plus précis top. Si vous devez organiser une fois que vous pouvez exécuter:

top -b -n 1 -p <PID>

ou pour les données relatives au procédé seulement et en-tête:

top -b -n 1 -p <PID> | tail -3 | head -2

sans en-têtes:

top -b -n 1 -p <PID> | tail -2 | head -1
4
répondu aviranh 2017-05-23 12:34:41
ps aux|awk  '{print ,,}'|grep PID

où la première colonne est le PID,la deuxième colonne L'utilisation CPU ,la troisième colonne l'utilisation de la mémoire.

2
répondu Osama Al-Banna 2014-07-21 13:19:30

pour obtenir l'utilisation de mémoire de juste votre application (par opposition aux bibliothèques partagées qu'il utilise, Vous devez utiliser L'interface Linux smaps). Cette réponse explique bien .

1
répondu Paul Biggar 2017-05-23 12:18:16
ps axo pid,etime,%cpu,%mem,cmd | grep 'processname' | grep -v grep

PID-Process ID

etime - Processus en cours d'Exécution/Live "Durée de l'151920920"

%utilisation cpu - CPU

%mem - utilisation de la Mémoire

cmd - Commande

remplacez processname par n'importe quel processus que vous voulez suivre, mysql nginx php-fpm etc...

1
répondu Siva KR 2016-04-21 08:48:04

toutes les réponses ici montrent seulement le pourcentage de mémoire pour le PID.

voici un exemple d'utilisation de la mémoire rss en KB pour tous les processus apache, remplacez "grep apache" par "grep PID" si vous voulez simplement regarder un PID spécifique:

watch -n5 "ps aux -y | grep apache | awk '{print $2,$6}'"

Cette affiche:

Every 5.0s: ps aux -y | grep apache | awk '{print ,}'                                                                                                                                                                                                          
Thu Jan 25 15:44:13 2018

12588 9328
12589 8700
12590 9392
12591 9340
12592 8700
12811 15200
15453 9340
15693 3800
15694 2352
15695 1352
15697 948
22896 9360

Avec % CPU:

watch -n5 "ps aux -y | grep apache | awk '{print $2,$3,$6}'"

sortie:

Every 5.0s: ps aux -y | grep apache | awk '{print ,,}'                                                                                                                                                                                                       
Thu Jan 25 15:46:00 2018

12588 0.0 9328
12589 0.0 8700
12590 0.0 9392
12591 0.0 9340
12592 0.0 8700
12811 0.0 15200
15453 0.0 9340
15778 0.0 3800
15779 0.0 2352
15780 0.0 1348
15782 0.0 948
22896 0.0 9360
1
répondu Banana 2018-01-25 20:56:42

(si vous êtes dans MacOS 10.10, essayez l'option accumulative-c de top:

top -c a -pid PID

(cette option n'est pas disponible sous d'autres linux, essayé avec Scientific Linux el6 et RHEL6)

0
répondu Kieleth 2015-02-28 17:27:53

ci-dessus énumérer le processus de consommation de cpu et de mémoire

        ps axo %cpu,%mem,command | sort -nr | head
0
répondu user8854776 2017-11-14 02:51:40

CPU et l'utilisation de la mémoire d'un seul processus sur Linux ou vous pouvez obtenir le Top 10 cpu utilisé des processus en utilisant la commande ci-dessous

ps-aux -- sort-pcpu | head-n 11

-1
répondu jyothish reddy 2018-07-03 06:14:16