Je cherche quelque chose comme top est à l'utilisation du CPU. Y a-t-il un argument de ligne de commande pour top qui fait cela? Actuellement, ma mémoire est si pleine que même 'man top' échoue sans mémoire :)
De l'intérieur top
, vous pouvez essayer ce qui suit:
Vous pouvez également essayer:
$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5
Cela donnera les 5 premiers processus en fonction de l'utilisation de la mémoire.
Si vous l'avez installé, j'aime htop
une fois lancé, vous pouvez appuyer sur f6, down arrow (à MEM%
), enter trier par mémoire.
Une fois que top
démarre, appuyez sur F pour passer à l'écran du champ de tri. Choisissez l'un des champs répertoriés en appuyant sur la touche indiquée à gauche; tu veux probablement N pour MEM%
Dans Solaris, la commande dont vous auriez besoin est:
prstat -a -s size
Cela répertoriera tous les processus par ordre décroissant de taille d'image de processus. Notez que ce dernier est basé sur la mémoire dédiée au processus par le système d'exploitation, et non sur l'utilisation de sa mémoire physique résidente.
Il existe supposément des versions de "top" disponibles pour Solaris, mais elles ne font pas partie de l'installation standard.
Une bonne alternative à top
est htop
. Vérifiez-le, il est beaucoup plus convivial que le top ordinaire.
Cela peut être réalisé de plusieurs façons, mon préféré est:
La manière PS:
[arif@arif ~]$ ps -eo pid,cmd,%cpu,%mem --sort=-%mem
Où,
-e
: pour sélectionner tous les processus-o
: à appliquer au format de sortiepid
, cmd
, %cpu
, %mem
: Format de sortie dans l'ordre exact. Ici, pcpu
et pmem
peuvent être utilisés à la place de %cpu
et %mem
.[arif@arif ~]$ ps -eo pid,cmd,%cpu,%mem --sort -rss
Où,
-rss
: taille de l'ensemble résident, la mémoire physique non permutée utilisée par une tâche[arif@arif ~]$ ps --cols 120 aux --sort -rss
Où,
--cols 100
: pour spécifier la largeur de colonne de la sortie car parfois cmd
devient très long. Cela n'est pas nécessaire si vous ne voulez pas de commandes raccourcies avec des arguments.aux
: pour voir tous les processus du système en utilisant la syntaxe BSDLa meilleure façon:
[arif@arif ~]$ top -b -o +%MEM
Où,
-b
: pour utiliser top
comme batch
mode.-o
: pour remplacer le nom de champ de tri suivi d'un nom de champ %MEM
Et vous pouvez toujours utiliser head
et/ou tail
pour contrôler la sortie.
Cette commande identifiera les principaux processus consommant de la mémoire:
ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"
Globalement: Il est toujours recommandé d'utiliser un outil d'analyseur de journal pour la journalisation des journaux d'historique tels que Splunk, ELK etc. Afin que l'utilisation du langage de requête vous pouvez facilement obtenir les PID et leur utilisation par CPU et mémoire.
AU NIVEAU SERVEUR/OS: De l'intérieur en haut, vous pouvez essayer ce qui suit:
Press SHIFT+M ---> This will give you a process which takes more memory in descending order.
Vous pouvez également essayer:
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
Cela donnera le top 10 des processus en fonction de l'utilisation de la mémoire. Vous pouvez également utiliser l'utilitaire vmstat pour trouver l'utilisation RAM en même temps, pas pour l'historique.
Tu peux essayer ps aux --sort -rss | head
ou ps aux | sort -nk +4 | tail