Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question
    
depending on the version of 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
add comment

2 Answers

up vote 0 down vote accepted

Meanwhile I wrote my own program - audria - capable of monitoring the resource usage of one or more processes, including current/average CPU usage, virtual memory usage, IO load and other information.

share|improve this answer
add comment

Have you tried remotetaskmonitor.com? You can select individual process or thread, and then capture the cpu usage for that over a period of time. It will generate for you the cpu and memory usage plots.

Another option might be cpuprofiler.com. But with this, your cpu data is stored in the cloud and you can login from a web browser to view the cpu reports.

share|improve this answer
    
Thanks for your suggestions. But Remote Task Monitor seems to run only on Windows (although claiming to be capable of monitoring Linux devices). And CPU Profiler only monitors a very limited set of application characteristics, plus the disadvantage of having to upload all the data to the cloud. –  scai Jan 19 at 21:26
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.