Liste der 10 wichtigsten CPU- und Speicherverbrauchsprozesse - Linux

451
Thangan

Ich versuche die Top 10-Prozesse zu finden, die mit dem Befehl mehr CPU und Speicher verbrauchen

ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10 

Es werden jedoch nicht die korrekten Daten angezeigt, da ich für den gleichen Prozess sehen konnte, dass der Prozentsatz der CPU-Prozent im oberen Befehl wie 10% und dann 250% schwankt.

Bitte helfen Sie bei der Auflistung des hohen CPU-Verbrauchs, indem Sie alle Kerne berücksichtigen.

Wir können kein Tool als Prod-Server installieren. Um dies zu verdeutlichen, besteht die Anforderung immer dann, wenn auf dem Server eine Warnung zu hoher CPU-Auslastung vorliegt. Wir versuchen, die 10 wichtigsten Prozesse zusammen mit CPU und Arbeitsspeicher zu erfassen und als E-Mail zu senden. Wenn wir zu diesem Zeitpunkt nur die Spitzenleistung extrahieren, wird die Verwendung des Prozesses zwischen den Kernen möglicherweise nicht angezeigt, da er schwankt.

1
Hüpfen die Prozesse nur herum, verwenden sie eine Sekunde lang viel CPU und in der nächsten nur wenig? Sie können nicht viel dagegen tun, außer vielleicht eine durchschnittliche CPU-Zeit Xen2050 vor 5 Jahren 1
Können Sie mir helfen, die durchschnittliche CPU-Zeit für Top-10-Prozesse zu ermitteln Thangan vor 5 Jahren 0
Ich schaue mir nur top oder htop an, bin mir aber nicht sicher, wie man das in einem Skript macht, ich würde danach suchen (scheint so zu sein, dass es üblich ist) Xen2050 vor 5 Jahren 0
Eigentlich haben wir kein htop ... Die Anforderung besteht immer dann, wenn bei hoher CPU-Auslastung auf dem Server ein Alarm ausgelöst wird. Wir versuchen, die 10 wichtigsten Prozesse zusammen mit CPU und Speicher zu erfassen und als E-Mail zu senden ... Wenn wir extrahieren zu diesem Zeitpunkt wird die Auslastung des Prozesses nicht zwischen den Kernen angezeigt, da sie schwanken wird. Bleiben Sie also in dieser Situation und brauchen Sie Ihre Hilfe ... Thangan vor 5 Jahren 1
Klingt, als wären die `sysstat`-Tools die bessere Wahl, als zu versuchen, einen Bedarf im Heuhaufen zu finden. Tigger vor 5 Jahren 0

2 Antworten auf die Frage

0
harrymc

Sie können den topBefehl verwenden, um Prozesse und die Verwendung von Systemressourcen unter Linux zu überwachen. Es ist eines der nützlichsten Tools in der Toolbox eines Sysadmins und wird bei jeder Distribution vorinstalliert. Im Gegensatz zu anderen Befehlen, z. B. psinteraktiv, können Sie durch die Liste der Prozesse blättern, einen Prozess beenden und so weiter.

Beispiele für seine Verwendung finden Sie im Artikel 12 TOP-Befehlsbeispiele in Linux .

0
husjon

Es scheint einen Rechtschreibfehler in Ihrer Sortierflagge zu geben ( -pcpc sollte -pcpu sein )

Wenn Sie den korrigierten Befehl ausführen, wird der folgende Snapshot angezeigt, in dem die kombinierte CPU-Auslastung für die Top-9-Prozesse nach CPU-Auslastung absteigend angezeigt wird (verwenden Sie head -n 11, um die Top 10 zu erhalten):

$ ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10 USER UID COMMAND PID %CPU %MEM husjon 1000 PathOfExile_x64 13233 225 4.7 husjon 1000 wineserver 13172 30.4 0.0 husjon 1000 chrome 12501 18.7 1.3 husjon 1000 chrome 10631 13.2 0.8 husjon 1000 lutris 12474 7.6 0.2 root 0 Xorg 620 5.6 0.1 husjon 1000 compton 2146 4.2 0.2 husjon 1000 chrome 10595 4.1 1.0 husjon 1000 chrome 32332 3.4 0.5 

Hoffe das hilft

Korrigierte meinen Befehl (Tippfehler). Das Problem hier ist, dass es die CPU-Auslastung eines Prozesses für einen bestimmten Kern zeigt, da ich sehen könnte, dass derselbe Prozess in einem anderen Kern mit sehr hoher CPU-Auslastung ausgeführt wird CPU-Auslastung eines bestimmten Prozesses im gesamten Kern? Thangan vor 5 Jahren 0
Entschuldigung für die späte Antwort. Wenn Sie ein Vielfaches eines einzelnen Prozessnamens (in ps) sehen, handelt es sich um eine andere Instanz dieser Anwendung, sofern nicht angegeben, dass jeder Thread angezeigt wird. Durch das Hinzufügen der Markierung "-L" können Sie die Threads anzeigen. Dies kann durch Hinzufügen von "tid" zur Spaltenliste bei Verwendung des "-L" -Flags überprüft werden. Wenn TID und PID pro Zeile den gleichen Wert haben, ist dies ein Indiz für einen einzelnen Prozess. Ein Multithread-Prozess hat wiederholte PID, jedoch unterschiedliche TIDs. husjon vor 5 Jahren 0