• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

CPU Last eines Prozesse mit Zeitstempel, womit?

Gibt es ein Tool das das so etwas kann? Und zwar würde mich nur die CPU Last eines Prozesses über einen gewissen Schwellwert (z.B. 10%) interessieren.

ps, top und ksysguard liefern leider nicht die gewünschten informationen.

Mit ps könnte man schnell etwas zusammenbasteln wenn es die richtigen Werte zurückgeben würde. Anscheinend ist die pcpu Ausgabe immer veraltet.
 
Das Problem bei ps ist, daß es den Prozess Snapshot nicht bei jedem Aufruf aktualisiert sondern nur alle paar Minuten (keine Ahnung wann). Das heißt, daß Du immer den selben Wert bekommst egal ob der Prozeß grad 1% oder 99% hat. Die Ausgabe ist dann z.B. jedesmal 25,9%
 
das sieht ja schon mehr wie perl aus ;) awk kennt zwar if, aber an sich ist die Idee ja
Code:
pattern { action }
so dass man das auch schön awk-isch schreiben kann:

Code:
ps aux | awk ' ( int($3) > 10 || $3 ~ "CPU" ) {print }'

bzw. noch weiter auseinander
Code:
ps aux | awk ' ( int($3) > 10 ) {print } ( $3 ~ "CPU" ) {print }'
(ok, bei einem 1-Zeiler verliert das etwas an Eleganz, aber in einem extra-AWK-Scirpt sieht das schon besser aus.

wenn man jetzt noch GNU-awk verwendet, dann kann man auch noch den geforderten Timestamp erzeugen
Code:
ps aux | gawk ' BEGIN { Format = "%Y/%m/%d %H:%M"; print strftime( Format, systime() ) } ( int($3) > 10 || $3 ~ "CPU" ) {print }'
Hier wird jetzt als 1. Zeile Dateum + Uhrzeit ausgegeben. Achtung: das ist nicht mehr so portabel! daher auf der Aufruf von gawk!


Jetzt zu dem Einwand bzgl. ps:

ich zitier mal aus man ps:
%CPU zeigt die prozentuale CPU-Zeit/Realzeit an. Die Summe wird nur
manchmal 100% ergeben. Es ist die verbrauchte Zeit, geteilt durch die
Zeit, die der Prozeß am laufen ist.
d.h. es ist nicht die aktuelle Last dieses Prozesses!
 
bei einem weieren Blick in man ps hmmm
AUSGABE-MODIFIKATOREN OUTPUT MODIFIERS

[...] C Reine CPU-Zeit für %CPU anzeigen anstatt des Durchschnitts
damit könnte es gehen, aber irgendwie will der bei mir nicht so wie ich... evtl. liest Du Dir in aller Ruhe mal die manpage durch und bastelst ein wenig...
 
Ich hab mir bereits die man-pages in Ruhe durchgelesen und auch gebastelt sonst würde ich hier nicht fragen.
 
War mir in dem ps-man noch nicht aufgefallen.

Wie sieht es mit top und den Optionen -n .. -b .. -d .. aus.
Damit könnte man etwas filtern, wenn top auf Linux richtig will..

Haveaniceday
 
ok, also ps fällt raus, bei top steht ncihts von einem Durchschnitt, so dass ein

Code:
top -b -n1 | awk ' (int($9)>10 ) { print }'
wirklich das richtige sein könnte...
 
Ja genau. Das sieht gut aus. Das -n1 bei top ist natürlich die Lösung um etwas einzeln zu herauszuholen.

Danke für die Hilfe :)
 
Oben