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.Antworten:
In der Zwischenzeit habe ich mein eigenes Programm - audria - geschrieben, mit dem die Ressourcennutzung eines oder mehrerer Prozesse überwacht werden kann, einschließlich der aktuellen / durchschnittlichen CPU-Auslastung, der Auslastung des virtuellen Speichers, der E / A-Auslastung und anderer Informationen.
quelle
Haben Sie versucht, remotetaskmonitor.com ? Sie können einen einzelnen Prozess oder Thread auswählen und dann die CPU-Auslastung für diesen Zeitraum erfassen. Es generiert für Sie die CPU- und Speichernutzungsdiagramme.
Eine andere Option könnte cpuprofiler.com sein . Damit werden Ihre CPU-Daten in der Cloud gespeichert und Sie können sich über einen Webbrowser anmelden, um die CPU-Berichte anzuzeigen.
quelle
Oprofile , Pakete, die in den meisten Distributions-Repos verfügbar sind, bieten optionale prozess- oder systemweite Ereignis- und Prozessprofile mithilfe der Hardware-Leistungsindikatoren der CPU.
quelle