Wie zeige ich die fünf CPU-verbrauchenden Prozesse mit ps?
101
Warum verwenden, ps
wenn Sie es einfach mit dem top
Befehl tun können ?
Wenn Sie verwenden müssen ps
, versuchen Sie Folgendes:
ps aux | sort -nrk 3,3 | head -n 5
Wenn Sie etwas möchten, das wirklich "top" ist und ständig aktualisiert wird, verwenden Sie watch
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
tatsächlichen Funktionsweise unterscheidet .top
liest die Prozessliste und zeigt das Ergebnis alleine an, ohne zu einem anderen ProzessDie richtige Antwort lautet :
So können Sie Spalten angeben, ohne die Sortierung zu beeinträchtigen.
Ex:
Hinweis für MAC OS X : Wird in Mac OS X
ps
nicht erkannt--sort
, bietet-r
jedoch die Sortierung nach aktueller CPU-Auslastung an. Daher können Sie für Mac OS X Folgendes verwenden:quelle
bash
(x2, oderhead
auch)ps
...sort
. Der zweite zeigt, wie Spalten angegeben werden, ohne die Sortierung zu beeinträchtigen. Wenn Sie etwas erklären, ist es immer besser, kurz und prägnant zu sein und jeweils eine Sache zu erklären.Abhängig von Ihren Bedürfnissen finden Sie dies möglicherweise etwas lesbarer:
Beispielausgabe:
(Die Felder sind% CPU, PID, USER, COMMAND)
quelle
Ich denke nicht,
ps
wonach du suchst. Hast du dir die Ausgabe von angeschauttop
?Wenn Sie GNU-Top haben, versuchen Sie, im Batch-Modus eine nach CPU-Auslastung sortierte Prozessliste auszuspucken und mit head / tail die Top-5-Zeilen zu erhalten (die ersten 8 sind Überschriften):
Das BSD-Top scheint sich anders zu verhalten und verfügt nicht über einen nicht interaktiven Modus. Verwenden Sie daher eine der anderen
ps
basierten Lösungen.quelle
top -o cpu -n 5
eine Möglichkeit, dasselbe zu erreichen. Weiß jemand? Meinetop
ist anders als deinetop
.-o
und-n
legt fest, wie oft das Display vor dem Beenden aktualisiert wird.top
scheint keinen Batch-Modus zu haben, was ziemlich einschränkend ist. Es muss eine Möglichkeit zur Weiterleitungtop
in andere Befehle geben. Ich werde etwas recherchieren.top
hat heute Nachmittag wie beschrieben gearbeitet. Prost.Schnellster Liner, den ich dafür gefunden habe (Anmerkung 6, da der Header zusammenfällt):
quelle
Beachten Sie, dass die aktuellen Versionen von ps Sortierfunktionen basierend auf den Feldcodes (auf der ps-Manpage) enthalten. Der Feldcode für die Prozessorverwendung lautet "c". Sie können
--sort c
am Ende eines ps-Befehls zps aux --sort c
Dadurch wird der Prozess mit der meisten CPU am Ende der Liste platziert. Umgekehrte Reihenfolge der Liste durch Hinzufügen eines Minus zum Feldcode, der zum Sortieren verwendet wird, z
ps aux --sort -c
quelle
Um anderen wertvollen Antworten einen Punkt hinzuzufügen, bevorzuge ich:
Es druckt auch die Kopfzeile, was nett ist.
Hier
k
ist identisch mit--sort
undc
gibt das CPU-Nutzungsfeld (Alias%cpu
) für die Sortierung an, während-
es sich um die umgekehrte Sortierung handelt.Sie können mehr Bezeich durch voneinander getrennt sind
,
, andere mögliche Bezeich sind:%mem
,args
,bsdstart
,pid
,gid
,uid
... , die Sie vollständige Liste in finden STANDARD Formatbezeichner Abschnitt der Mann - Seite. Zum Beispiel:würde 10 Prozesse mit der höchsten Gruppen-ID drucken, intern sortiert nach Speichernutzung.
quelle
Das Kommandozeilen-Tool
ps
hat eine eigene Sortieroption, daher bevorzuge ich:Sie können die gewünschten Spalten hinzufügen. Sehen Sie auf der
ps
Manpage nach, welche anderen Optionen verfügbar sind .quelle
top
Unter Mac OS X gibt es eine Option für den Protokollierungsmodus in Form vontop -l numberOfSamples
(was dem Batch-Modus von GNU zu entsprechen scheinttop
). Es ist jedoch erforderlich, mindestens zwei Stichproben zu haben, da "bei der ersten angezeigten Stichprobe für jeden Prozess ein ungültiger Prozentsatz der CPU angezeigt wird, da er anhand des Deltas zwischen Stichproben berechnet wird" (man 1 top
).quelle
top
zeigt an, was Ihre CPU verwendet. Wenn Sie es installiert haben,htop
können Sie die Steuerung verfeinern, einschließlich der Filterung nach - in Ihrem Fall - CPU.quelle
Ich glaube, der einfachste Weg, um zu sehen, Top-5-CPU-verbrauchenden Prozess ist,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Um zu sehen, wie viel Speicher in den Top 5 verbraucht wird,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Wo,
-e
: Mit diesem Flag werden alle Prozesse ausgewählt-o
: Dieses Flag wird zum benutzerdefinierten Formatieren verwendet.pid
: Dieses Argument wird zum Anzeigen von pid verwendetcomm
: Dieses Argument wird nur zum Anzeigen des Befehlsnamens verwendet. Um den vollständigen Befehl abzurufenargs
, verwenden Siecmd
odercommand
%cpu
: Dieses Argument gibt den Prozentsatz der CPU-Auslastung des Prozesses im Format "##. #" An. Hierpcpu
kann auch verwendet werden.%mem
: Dieses Argument gibt das Verhältnis der Größe des residenten Satzes des Prozesses zum physischen Speicher auf dem Computer in Prozent an. Hierpmem
kann auch verwendet werden.--sort
: Geben Sie die Sortierreihenfolge an. Nach=
dem-
Vorzeichen wird der höchste Wert oben sortiert, wobei die Standardoption darin+
besteht, eine aufsteigende numerische Reihenfolge aufzulisten [dh 0 bis n].quelle
top -bn1 |sed -n '7,12'p
funktioniert auch als netter kleiner Liner.Allerdings bevorzuge ich ps mit --sort = X -o X, Y, Z
Mit ps können Sie verschiedene Statistiken für einen Prozess-ODER-Benutzer abrufen und diese dann mit einem Pipe-to-awk-Befehl ODER-verknüpfen.
quelle