Comment afficher les cinq principaux processus consommateurs de ressources processeur avec ps?
102
Pourquoi utiliser ps
quand vous pouvez le faire facilement avec la top
commande?
Si vous devez utiliser ps
, essayez ceci:
ps aux | sort -nrk 3,3 | head -n 5
Si vous voulez quelque chose qui est vraiment 'top'esq avec des mises à jour constantes, utilisez watch
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
fonctionne réellement.top
lit la liste des processus et affiche seul le résultat, sans passer par aucun autre processusLa bonne réponse est :
Ainsi, vous pouvez spécifier des colonnes sans interférer avec le tri.
Ex:
Remarque pour MAC OS X : sous Mac OS X,
ps
ne reconnaît pas--sort
, mais propose-r
de trier en fonction de l'utilisation actuelle du processeur. Ainsi, pour Mac OS X, vous pouvez utiliser:la source
bash
(x2, ouhead
aussi bien)ps
...sort
, la seconde montre comment spécifier des colonnes sans interférer avec le tri. Quand on explique quelque chose, il vaut toujours mieux être concis et expliquer une chose à la fois.En fonction de vos besoins, vous trouverez ceci un peu plus lisible:
exemple de sortie:
(les champs sont% CPU, PID, USER, COMMAND)
la source
Je ne pense pas que
ps
c'est ce que vous recherchez. Avez-vous regardé la sortie detop
?Si vous avez GNU-Top, essayez d’utiliser son mode batch pour créer une liste de processus triée par utilisation du processeur et utilisez tête / queue pour obtenir les 5 premières lignes (les 8 premières sont des en-têtes):
Le dessus de BSD semble se comporter différemment et ne dispose pas d'un mode non interactif, utilisez donc l'une des
ps
solutions proposées.la source
top -o cpu -n 5
un moyen de réaliser la même chose. Est-ce que quelqu'un sait? Montop
est différent de votretop
.-o
et-n
définit le nombre de fois où il rafraîchit l'affichage avant de quitter.top
ne semble pas avoir un mode batch, ce qui est assez limitant. Il doit y avoir un moyen d'intégrer d'top
autres commandes. Je vais faire des recherches.top
fonctionné comme décrit cet après-midi. À votre santé.La plus rapide des doublures que j'ai trouvées pour cela (note 6 car l'en-tête est la somme):
la source
Notez que les versions actuelles de ps possèdent une capacité de tri en fonction des codes de champ (indiqués dans la page de manuel ps). Le code de champ pour l'utilisation du processeur est "c". Vous pouvez utiliser
--sort c
à la fin d'une commande ps, par exempleps aux --sort c
Cela mettra le processus utilisant le plus de processeurs au bas de la liste. Inversez l'ordre de la liste en ajoutant un moins au code de champ utilisé pour trier, par exemple
ps aux --sort -c
la source
Afin d'ajouter un point à d'autres réponses intéressantes, je préfère:
Il affiche également l'en-tête, ce qui est agréable.
Ici
k
est identique à--sort
etc
spécifie le%cpu
champ d' utilisation du processeur (alias ) pour le tri, alors que-
c'est pour le tri inversé.Vous pouvez ajouter plusieurs spécificateurs séparés par d'
,
autres spécificateurs possibles sont:%mem
,args
,bsdstart
,pid
,gid
,uid
... que vous pouvez trouver la liste complète dans STANDARD FORMAT PRESCRIPTEURS section de page de manuel. Par exemple:imprimerait 10 processus avec l’identifiant de groupe le plus élevé, triés en interne par utilisation de la mémoire.
la source
L'outil de ligne de commande
ps
a sa propre option de tri, je préfère donc:Vous pouvez ajouter les colonnes que vous voulez. Voir quelles autres options sont disponibles via la
ps
page de manuel.la source
top
sur Mac OS X a une option de mode de journalisation sous la forme detop -l numberOfSamples
(qui semble être l'équivalent du mode de traitement par lots de GNUtop
). Il est toutefois nécessaire d’avoir au moins deux échantillons car "le premier échantillon affiché aura un pourcentage de CPU non valide pour chaque processus, car il est calculé à l’aide du delta entre échantillons" (man 1 top
).la source
top
affichera ce qui utilise votre CPU. Si vous l'avez installé,htop
vous permet un contrôle plus fin, y compris le filtrage par - dans votre cas - le processeur.la source
Je crois que le moyen le plus simple de voir le processus consommant le plus de 5 cpu est,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Pour voir le top 5 processus consommateur de mémoire est,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Où,
-e
: Cet indicateur est utilisé pour sélectionner tous les processus-o
: Cet indicateur est utilisé pour formater en tant que défini par l'utilisateur.pid
: Cet argument utilisé pour montrer le pidcomm
: Cet argument est utilisé uniquement pour afficher le nom de la commande. Pour obtenir une utilisation complète de la commandeargs
,cmd
oucommand
%cpu
: Cet argument indique le pourcentage d'utilisation du processeur par le processeur au format "##. #". Icipcpu
peut également être utilisé.%mem
: Cet argument indique le rapport entre la taille de l'ensemble résident du processus et la mémoire physique de la machine, exprimé en pourcentage. Icipmem
peut également être utilisé.--sort
: Spécifiez l'ordre de tri. Une fois que=
le-
signe est utilisé pour trier la valeur la plus élevée en haut, l’option par défaut consistant+
à répertorier un ordre numérique croissant [c.-à-d. De 0 à n].la source
top -bn1 |sed -n '7,12'p
fonctionne comme un joli petit paquebot aussi.Bien que je préfère utiliser ps avec --sort = X -o X, Y, Z
en utilisant ps, vous pouvez extraire différentes statistiques grep pour un processus OU un utilisateur, puis les totaliser OU les avg avec un tuyau à effacer.
la source