Finden Sie heraus, welcher Prozess eine hohe CPU-Auslastung verursacht

30

Gibt es eine Möglichkeit, am Terminal herauszufinden, welcher Prozess eine hohe CPU-Auslastung verursacht?

Es wäre auch nützlich, Prozesse in absteigender Reihenfolge der CPU-Auslastung zu ordnen

Gautam
quelle

Antworten:

23

topzeigt an, was Ihre CPU verwendet. Wenn Sie es installiert haben, htopkönnen Sie die Steuerung verfeinern, einschließlich der Filterung nach - in Ihrem Fall - CPU

jasonwryan
quelle
4
Top ist oft weniger als nützlich. Erstens, weil Prozesse häufig schwanken - es ist nicht ungewöhnlich, dass Prozesse, die die CPU vollständig belegen, gelegentlich zu 0% an der Spitze flackern. Wenn mehrere intensive Prozesse ausgeführt werden, können sich diese abwechseln und abwechselnd 100% verwenden, während die anderen 0% verwenden. und machen es schwer zu lesen. Manchmal sind die Zahlen auch nur seltsam - z. B. meldet meine Spitze derzeit, dass alle einzelnen Prozesse 0% CPU verwenden, aber insgesamt 52% - also welche macht das?
Benubird
29
ps -eo pcpu,pid,user,args | sort -k1 -r -n | head -10

Funktioniert für mich, zeige die Top 10 der CPU mit Hilfe von Threads, numerisch sortiert

chosig
quelle
1
In umgekehrter lexikografischer
Reihenfolge
3
Ich würde empfehlen, ein -n hinzuzufügen, um zu sortieren. Es sortiert die Werte numerisch statt lexikalisch. ( ss64.com/bash/sort.html )
Simon Zyx
4

Neben psund top-Befehlen können Sie auch ausführen, vmstatum herauszufinden, was im Hinblick auf die CPU- und Speichernutzung auf dem System geschieht, z.

vmstat 1 100

Mit den oben genannten Werten erhalten Sie 100 Samples pro Sekunde. Wenn die Spalte roder beine Nummer enthält (höher = mehr Ressourcen werden verwendet), wird ein Skript blockiert. rIst CPU, bist in der Regel IO-Blocker wie Festplatte oder Netzwerk.

Beispielausgabe:

$ vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 288700  17592 1920048    0    0  4482  3297   47  155  8  2 78 12  0
 0  0      0 268420  17904 1920584    0    0   788    36 4095 4759 11  3 85  1  0
 0  0      0 269916  17940 1920868    0    0   108   560 6969 7280 11  2 86  1  1
 3  0      0 267684  18196 1921304    0    0   256     0 5934 6094  9  2 90  0  0
 0  0      0 257800  18196 1921528    0    0     0     0 5412 5508 10  1 89  0  1
 1  0      0 257368  18196 1922028    0    0     0     0 5852 6046  9  1 89  0  1
 0  0      0 256872  18200 1922236    0    0     0     0 5345 5566  9  1 90  0  0
 0  0      0 256688  18208 1922292    0    0     0  1788 5388 5602  7  2 90  1  1
 0  0      0 256520  18208 1922684    0    0     0     0 5387 5557  8  1 91  0  0
 1  0      0 255788  18208 1923024    0    0     0     0 4992 5363 10  1 89  0  1
 1  0      0 255392  18208 1923456    0    0     0     0 5027 5145 13  1 86  0  0
 0  0      0 254980  18208 1923792    0    0     0     0 5042 5082 21  1 77  0  1
 0  0      0 254452  18216 1924092    0    0     0  1848 5481 5695  7  1 91  1  1
 0  0      0 254416  18216 1924268    0    0     0     0 4947 5250  7  1 92  0  0
 1  0      0 253732  18216 1924616    0    0     0     0 5180 5383  8  2 90  0  1
 0  0      0 253584  18216 1924912    0    0    12     0 4464 4623  8  1 91  0  0
 0  0      0 243496  18216 1925224    0    0     0     0 5507 5700  9  1 90  0  1
 0  0      0 243008  18224 1925504    0    0     0  1356 5070 5345  8  1 90  0  1
 1  0      0 243220  18228 1925676    0    0     0     0 6241 6533 11  2 87  0  0
radtek
quelle
2

Sie können wahrscheinlich verwenden ps xo pid,cmd --sort=%cmd | tail -1, wird aber topin Echtzeit angezeigt.

Arcege
quelle
2

" htop " ähnelt "top", verfügt jedoch über eine "farbenfrohe textbasierte grafische" Anzeige Ihrer CPUs und zeigt Prozessen eine Baumstruktur an, damit Sie wissen, dass ein Prozess ein untergeordnetes Element hat und wie viele.

Es zeigt auch die Akkuleistung des Laptops an und ob er geladen wird - das wusste ich vorher nicht!

KolonUK
quelle