I am looking for a way to profile a single process including time spent for CPU, I/O, memory usage over time and optionally system calls.
I already know callgrind
offering some basic profiling features but only with debugging information and lacking most of the other mentioned information.
I know strace -c
providing a summary about all system calls and their required CPU time.
I know several IO-related tools like (io)top
, iostat
, vmstat
but all of them are lacking detailed statistics about a single process. There is also /proc/$PID/io
providing some IO statistics about a single process, but I would have to read it at fixed intervals in order to gather IO information over time.
I know pidstat
providing CPU load, IO statistics and memory utilization but no system calls, only at a high granularity and not over time.
One could of course combine several of the described tools to gather those information over time, but lacking a high granularity and thus missing important information. What I am looking for is a single tool providing all (or at least most) of the mentioned information, ideally over time. Does such a tool exist?
ps
and the options available, some of that information is available there. But... yes, I would love for an all-inclusive performance console like found on Windows7. One possible thing to help ... there is a pretty darn comprehensive perf utility originally for AIX (IBM Unix) called NMON, which I believe has been ported for use on (some) linux(es). Good luck. – shellter Jul 25 '12 at 15:48