CPU und Ram-Verbrauch von Prozess aufzeichnen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von peschmae » 21.03.2014 08:02:17

Guten Tag,

kennt einer von euch ein Kommandozeilentool, was es mir erlaubt einen Prozess zu starten und von diesem Prozess CPU/Ram, etc (alles was in top/htop steht) aufzuzeichnen? Und zwar so dass man das gut in Scripten verwenden kann - also nicht ein Tool bei dem ich die pid von einem laufenden Prozess angeben muss, sondern eins was den Prozess selber startet.

Quasi wie time langsamer_prozess oder auch perf nur halt mit anderen zu beobachtenden Variablen. Gerne darf das Tool auch andere Sachen mitaufzeichnen (CPU-Belastung durch andere Prozesse, Load, etc)...

Hab da bisher gar nichts gefunden, sowas muss es doch geben!

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
Patsche
Beiträge: 3255
Registriert: 21.06.2013 01:47:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /home/10001101001

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von Patsche » 21.03.2014 08:16:12

Vielleicht suchst du nach Debianatop ?Hab mir das noch nicht selbst angsesehen, hatte das aber in einem Blog gelesen, dass es dafür ganz nützlich sein soll.
-> http://www.debinux.de/2014/03/atop-das- ... ueckblick/

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von peschmae » 21.03.2014 08:40:14

atop kannte ich noch nicht, sieht sehr nett aus was das aufzeichnen von Sachen und die Output-Formate angeht. Was mir da noch fehlt ist die einfache Möglichkeit es so zu scripten wie ich oben beschrieben habe...

[Edit]Habe gerade herausgefunden, dass Debiantime (d.h. /usr/bin/time und nicht das shell-builtin) einiges mehr an Informationen liefert, das geht schon mal in die richtige Richtung. Allerdings ist das alles nur eine Zusammenfassung (max ram, etc) und nicht zeitlich aufgelöst...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von linuxCowboy » 21.03.2014 15:49:00

Schau dir mal Debiansysstat oder Debianatsar an!?
-der_linux_cowboy --- Besser werden! ... f*** w$$

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von peschmae » 21.03.2014 16:26:29

Danke, die haben beide leider nicht das interface das ich möchte, Debianatsar ist schon recht nahe dran mit dem Aufruf der für eine gewisse Zeit beobachtet. Was ich möchte ist aber dass er einen neu zu startenden Prozess solange beobachtet wie dieser läuft...

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von linuxCowboy » 21.03.2014 16:44:06

Hmm...da du es sowieso scripten willst könntest du es selbst starten, beobachten, (es) beenden, auswerten? Die "Tools" nutzen doch am Ende alle /proc...

PS: ...aber da wärst du sicher als Linux-seit-2003-User selber drauf gekommen! :wink:
-der_linux_cowboy --- Besser werden! ... f*** w$$

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von peschmae » 21.03.2014 17:32:04

Darauf hab ich nicht besonders Lust, weil das wird sicher nicht zuverlässiger, wenn ich da einen Prozess in den Hintergrund schicke und dann selber in bash checken bis der fertig ist und so.

Hätte lieber ein Tool dass sich ordentlich darum kümmert ohne dass ich da all zu viel Klamauk drumrum basteln will (ist sowieso schon ein eher abenteuerliches Script...). Ich meine, time hat noch immer funktioniert - so ein bash-gebastel hat immer irgendwelche cornercases wo die Sache dann doch nicht geht, und da muss *ich* dann halt alle Fehler debuggen ;)

Aber ja, wird wohl auf sowas herauslaufen...

Code: Alles auswählen

process&
PID=$!

while [[ ( -d /proc/$PID ) && ( -z `grep zombie /proc/$PID/status` ) ]]; do
    cat /proc/$PID/status >> log
    sleep 1
done
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von linuxCowboy » 21.03.2014 18:28:37

Auf den zweiten Blicke denke ich auch, wie Patsche, Debianatop könnte dir helfen!

Es hat "PROCESS ACCOUNTING" und "PARSEABLE OUTPUT". (siehe manpage) Musst dir nur noch raussuchen, was du für fields im output brauchst.

In dem Script ist dein Interface atop, nicht proc. Das raussuchen/fehlerchecken musst *du* dann nicht machen. ;-)

Das Program/den Prozess startest du wie sonst auch, eventl. eben erst in deinem Script. In einstellbaren Zeitintervallen meldet sich atop. Prozessende bekommt es ebenfalls mit.

Ist eine fette manpage, aber imho ist was du suchst implementiert.
-der_linux_cowboy --- Besser werden! ... f*** w$$

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von ThorstenS » 21.03.2014 19:22:23

Steve Kemp hat neulich runi vorgestellt: http://debian-administration.org/articl ... g_services
Vllt. hilft dir das bei deinem Problem.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: CPU und Ram-Verbrauch von Prozess aufzeichnen

Beitrag von peschmae » 22.03.2014 10:23:40

linuxCowboy hat geschrieben:In dem Script ist dein Interface atop, nicht proc. Das raussuchen/fehlerchecken musst *du* dann nicht machen. ;-)
Ja, mal gucken, wird wohl entweder atop oder proc. Das was mir an der stelle Sorgen macht ist weniger das Aufzeichnen der Daten sondern das Management vom und warten auf den Prozess den ich in den Hintergrund schicke. So hätte ich z.B. auch gerne den Rückgabewert von dem Ding. Das ginge zwar mit wait, aber das ist auch ein blocking aufruf, d.h. ich müsste dann atop auch gleich noch in den Hintergrund schicken...

Das geht dann schon irgendwie, ich guck dann Montag weiter, wäre halt schön gewesen wenns ein Tool gäbe was das alles schon macht.

[Edit]@ThorstenS: mit sv once $foo sollte sich da tatsächlich was bauen lassen, mal schaun...[/Edit]

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Antworten