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.
strace -c providing a summary about all system calls and their required CPU time.
I know several IO-related tools like
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.
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?