GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erkennen Sie Prozess, der CPU frisst, ohne:Top, Htop, Ps?

Ich ging durch ein Problem, bei dem ich nur raten konnte, welcher Prozess die CPU frisst.

Meine CPU-Auslastung betrug etwa 80 % für alle Kerne bei psensor.

Ich habe es mit htop versucht , top und ps -A -o pcpu,pid,cmd --sort +pcpu (das letzte habe ich sogar mit sudo ohne Erfolg versucht).
Alle diese zeigten, dass die schuldige PID (die mir bekannt war) nur etwa 7% verbrauchte…

Wenn ich auf dieser PID SIGKILL, werden alle wieder normal.

Zum Testen habe ich am Terminal while true;do echo -n;done eine Endlosschleife ausgeführt aber das konnte ich oben deutlich sehen; also war meine Vermutung, was die Probleme verursachte, nicht so ähnlich…

Ich frage mich also, ob es andere Möglichkeiten gibt, wie ich den Schuldigen hätte finden können, ohne raten zu müssen?

Wenn ich noch einmal darüber nachdenke, würde ich gerne wissen, welche Berechnungen psensor und „Systemlastanzeige-Applet“ verwendet, das diesen Wert anzeigen konnte, die anderen jedoch nicht?

PS.:Verlinkung zur Wartezeit,
Verlinkung zur durchschnittlichen Auslastung

Akzeptierte Antwort:

Ich bin mit den Details nicht vertraut genug, um genaue Hinweise zu geben, aber ich vermute, dass es zwei Ursachen für Unterschiede zwischen der tatsächlich verursachten Last und der angezeigten CPU-Auslastung gibt:

  1. Der Prozess kann aus mehreren Threads und top bestehen kann sie nicht zusammenfassen. Sie können die Anzahl der Threads hieran erkennen:

    ps -eo pid,nlwp,%cpu,user,args
    

    In top Sie können die Threadbehandlung mit H umschalten . Die CPU-Auslastung jedes Threads ist normalerweise recht gering.

  2. Der Prozess kann viele E/A-Vorgänge verursachen. Die E/A-Wartezeit ist Teil der gesamten CPU-Last, aber möglicherweise nicht Teil des CPU-Auslastungswerts eines Prozesses. Überprüfen Sie also das wait Wert in top . Es sagt Ihnen nicht, welche Prozesse es in welchem ​​Ausmaß verursachen, aber wenn der Wert niedrig ist, kann es den Effekt nicht erklären.


Linux
  1. CPU-Auslastung im Shell-Skript abrufen?

  2. Variable mit oder ohne Export definieren

  3. Linux :Sehen Sie sich die CPU-Auslastung durch einen Prozess für die letzte Sekunde an

  4. Timeout ohne Killing-Prozess in Bash

  5. htop, CPU nebeneinander anzeigen

Tipps für oben:Überwachung der CPU-Last unter Linux

30 Top-Befehlsbeispiele für die Überwachung unter Linux

Linux-Prozessverwaltung mit htop verbessert

Htop – Ein interaktiver Linux-Systemmonitor/Prozessbetrachter

Wie wird die Top/htop-Speichernutzung interpretiert?

Häufige CPU-Spitzen, verursacht durch unbekannten Java-Prozess?