CPU-Zeit und Last bei einzelnem Prozess anzeigen
Hallo Liste, wie kann ich mir bei einem einzelnen Prozess die CPU-Last (%) und Zeit (> 60m) anzeigen lassen ? Hintergrund ist, dass auf mehreren Linux-Büchsen eine Anwendung läuft, die bei nicht korrektem Abmelden der User teilweise eine hohe Systemlast erzeugt. Dann läuft meist ein Prozess (rts32), der teilweise bis zu 100% CPU einnimmt. Jetzt würde ich gerne einen cron-job erstellen, der alle 30 Min. prüft ob ein Job "rts32" seit länger 45m mit > 50% CPU-Last läuft. Mit ps, top und anderen Kandidaten konnte ich leider nicht rausfinden wie man das machen könnte. Vielen Dank im voraus für jede Hilfestellung. -- kind regards, Jens Strohschnitter ----------------------------------------- LINUX LINUX LINUX LINUX LINUX LINUX LINUX Set the controls for the heart of the sun LINUX LINUX LINUX LINUX LINUX LINUX LINUX ----------------------------------------- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo,
wie kann ich mir bei einem einzelnen Prozess die CPU-Last (%) und Zeit (> 60m) anzeigen lassen ?
Hintergrund ist, dass auf mehreren Linux-Büchsen eine Anwendung läuft, die bei nicht korrektem Abmelden der User teilweise eine hohe Systemlast erzeugt. Dann läuft meist ein Prozess (rts32), der teilweise bis zu 100% CPU einnimmt. Jetzt würde ich gerne einen cron-job erstellen, der alle 30 Min. prüft ob ein Job "rts32" seit länger 45m mit > 50% CPU-Last läuft.
Mit ps, top und anderen Kandidaten konnte ich leider nicht rausfinden wie man das machen könnte.
Vielen Dank im voraus für jede Hilfestellung.
schau Dir mal "sar" an ("man sar") im Paket sysstat. Das sollte vom hören und sagen für deine Zwecke ideal sein. Gruss Patrick -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tue, 25 May 2010 08:17:43 +0200
Patrick Klaus
Hallo,
wie kann ich mir bei einem einzelnen Prozess die CPU-Last (%) und Zeit (> 60m) anzeigen lassen ?
Hintergrund ist, dass auf mehreren Linux-Büchsen eine Anwendung läuft, die bei nicht korrektem Abmelden der User teilweise eine hohe Systemlast erzeugt. Dann läuft meist ein Prozess (rts32), der teilweise bis zu 100% CPU einnimmt. Jetzt würde ich gerne einen cron-job erstellen, der alle 30 Min. prüft ob ein Job "rts32" seit länger 45m mit > 50% CPU-Last läuft.
Mit ps, top und anderen Kandidaten konnte ich leider nicht rausfinden wie man das machen könnte.
Vielen Dank im voraus für jede Hilfestellung.
schau Dir mal "sar" an ("man sar") im Paket sysstat. Das sollte vom hören und sagen für deine Zwecke ideal sein.
Hi, ein guter Ansatz, danke. Aber geht das auch ohne zyklisches system-collecting ? Ich denke mal, da schiesse ich mit Kanonen auf Spatzen, oder ? -- kind regards, Jens Strohschnitter ----------------------------------------- LINUX LINUX LINUX LINUX LINUX LINUX LINUX Set the controls for the heart of the sun LINUX LINUX LINUX LINUX LINUX LINUX LINUX ----------------------------------------- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tuesday 25 May 2010 08:56:24 Jens Strohschnitter wrote:
ein guter Ansatz, danke. Aber geht das auch ohne zyklisches system-collecting ? Ich denke mal, da schiesse ich mit Kanonen auf Spatzen, oder ?
Dich interessiert die Information, die "top" normalerweise ausgibt, oder? Ich würde dann dort nachschauen, woher auch top die Info kriegt. Vielleicht ist das hier ein Ansatz: strace top -n 1 2>&1 >/dev/null | grep open Dabei kommen bei mir viele solche Zeilen raus: open("/proc/11754/stat", O_RDONLY) = 4 open("/proc/11754/statm", O_RDONLY) = 4 open("/proc/12396/stat", O_RDONLY) = 4 open("/proc/12396/statm", O_RDONLY) = 4 D.h. top liest die Info praktisch aus 2 Dateien pro Prozess. Nun würde ich mich mit deren Format beschäftigen. Ich würde mit "stat" beginnen, da ich "statm" kenne. Vielleicht findest Du schon alles in /usr/src/linux/Documentation/filesystems/proc.txt Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
ein guter Ansatz, danke. Aber geht das auch ohne zyklisches system-collecting ? Ich denke mal, da schiesse ich mit Kanonen auf Spatzen, oder ?
Dich interessiert die Information, die "top" normalerweise ausgibt, oder? Ich würde dann dort nachschauen, woher auch top die Info kriegt. Vielleicht ist das hier ein Ansatz:
strace top -n 1 2>&1 >/dev/null | grep open
Dabei kommen bei mir viele solche Zeilen raus:
open("/proc/11754/stat", O_RDONLY) = 4 open("/proc/11754/statm", O_RDONLY) = 4 open("/proc/12396/stat", O_RDONLY) = 4 open("/proc/12396/statm", O_RDONLY) = 4
D.h. top liest die Info praktisch aus 2 Dateien pro Prozess. Nun würde ich mich mit deren Format beschäftigen. Ich würde mit "stat" beginnen, da ich "statm" kenne. Vielleicht findest Du schon alles in /usr/src/linux/Documentation/filesystems/proc.txt
Hi, also statm gibt mir leider lt. proc.txt keine CPU-Werte, stat ist in der Doku nicht erklärt. Aber auch im LinuxWiki.org werden die Werte aus stat nicht entschlüsselt. $ cat /proc/18140/stat 18140 (rts32) S 18139 18101 18101 34838 18101 8396800 1817 3188 0 0 476 464 1 6 16 0 1 0 29325025 6225920 871 4294967295 134512640 134514360 3220099920 3220098020 4294960144 0 0 5 1597767418 0 0 0 17 0 0 0 Ok, Wert 1 ust ja noch klar, aber der Rest ? Welcher ist der CPU-Wert in % und was ist hier die Zeit in einer lesbaren Eiheit ? Geht sowas nicht per ps o.ä. ? -- kind regards, Jens Strohschnitter ----------------------------------------- LINUX LINUX LINUX LINUX LINUX LINUX LINUX Set the controls for the heart of the sun LINUX LINUX LINUX LINUX LINUX LINUX LINUX ----------------------------------------- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tue, 25 May 2010 09:30:21 +0200
Torsten Förtsch
On Tuesday 25 May 2010 08:56:24 Jens Strohschnitter wrote:
ein guter Ansatz, danke. Aber geht das auch ohne zyklisches system-collecting ? Ich denke mal, da schiesse ich mit Kanonen auf Spatzen, oder ?
Dich interessiert die Information, die "top" normalerweise ausgibt, oder? Ich würde dann dort nachschauen, woher auch top die Info kriegt. Vielleicht ist das hier ein Ansatz:
strace top -n 1 2>&1 >/dev/null | grep open
Dabei kommen bei mir viele solche Zeilen raus:
open("/proc/11754/stat", O_RDONLY) = 4 open("/proc/11754/statm", O_RDONLY) = 4 open("/proc/12396/stat", O_RDONLY) = 4 open("/proc/12396/statm", O_RDONLY) = 4
D.h. top liest die Info praktisch aus 2 Dateien pro Prozess. Nun würde ich mich mit deren Format beschäftigen. Ich würde mit "stat" beginnen, da ich "statm" kenne. Vielleicht findest Du schon alles in /usr/src/linux/Documentation/filesystems/proc.txt
ok ok, manchmal sieht man den Wald vor lauter Bäumen nicht: $ top -n 1 | grep rts32 3418 XXXX 15 0 6256 1508 1032 S 98 0.3 1:57.88 rts32 Jetzt noch bisserl awk und sed. Das sollte es gewesen sein. Danke für den Tip mit htop -n 1 ! -- kind regards, Jens Strohschnitter ----------------------------------------- LINUX LINUX LINUX LINUX LINUX LINUX LINUX Set the controls for the heart of the sun LINUX LINUX LINUX LINUX LINUX LINUX LINUX ----------------------------------------- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Jens Strohschnitter
-
Patrick Klaus
-
Torsten Förtsch