Ich suche nach einer Möglichkeit, einen einzelnen Prozess zu profilieren, einschließlich der Zeit, die für CPU, E / A, Speichernutzung im Laufe der Zeit und optional Systemaufrufe aufgewendet wird.
Ich weiß bereits, dass ich callgrind
einige grundlegende Profilierungsfunktionen anbieten kann, jedoch nur mit Debugging-Informationen und ohne die meisten anderen genannten Informationen.
Ich weiß, strace -c
dass ich eine Zusammenfassung aller Systemaufrufe und ihrer erforderlichen CPU-Zeit bereitstellen kann.
Ich kenne mehrere IO-bezogene Tools wie (io)top
, iostat
, vmstat
aber alle von ihnen fehlen Statistiken über einen einzigen Prozess beschrieben. Es gibt auch /proc/$PID/io
einige E / A-Statistiken zu einem einzelnen Prozess, die ich jedoch in festgelegten Intervallen lesen müsste, um E / A-Informationen im Laufe der Zeit zu sammeln.
Ich weiß pidstat
, wie man CPU-Auslastung, E / A-Statistiken und Speicherauslastung bereitstellt, aber keine Systemaufrufe, nur mit hoher Granularität und nicht im Laufe der Zeit.
Man könnte natürlich mehrere der beschriebenen Werkzeuge kombinieren, um diese Informationen im Laufe der Zeit zu sammeln, aber es fehlt eine hohe Granularität und somit fehlen wichtige Informationen. Was ich suche, ist ein einziges Tool, das alle (oder zumindest die meisten) der genannten Informationen im Idealfall im Laufe der Zeit bereitstellt. Gibt es ein solches Tool?
ps
und den verfügbaren Optionen sind einige dieser Informationen dort verfügbar. Aber ... ja, ich würde mich über eine All-Inclusive-Leistungskonsole freuen, wie sie unter Windows 7 zu finden ist. Eine mögliche Hilfe ... Es gibt ein verdammt umfassendes Perf-Dienstprogramm, das ursprünglich für AIX (IBM Unix) namens NMON gedacht war und meines Erachtens für die Verwendung unter (einigen) Linux (s) portiert wurde. Viel Glück.