详细的每进程分析

sca*_*cai 8 linux process load profiling

我正在寻找一种方法来分析单个进程,包括 CPU、I/O、随时间推移的内存使用以及可选的系统调用所花费的时间。

我已经知道callgrind提供一些基本的分析功能,但只有调试信息,缺少其他大部分提到的信息。

我知道strace -c提供有关所有系统调用及其所需 CPU 时间的摘要。

我知道几个与 IO 相关的工具,例如(io)top, iostatvmstat但它们都缺乏有关单个进程的详细统计信息。还/proc/$PID/io提供了有关单个进程的一些 IO 统计信息,但我必须以固定的时间间隔读取它,以便随时间收集 IO 信息。

我知道pidstat提供 CPU 负载、IO 统计数据和内存利用率,但没有系统调用,只是在高粒度上而不是随着时间的推移。

当然,人们可以结合几个所描述的工具来随着时间的推移收集这些信息,但缺乏高粒度,因此遗漏了重要信息。我正在寻找的是一个单一的工具,提供所有(或至少大部分)提到的信息,最好是随着时间的推移。有这样的工具吗?

sca*_*cai 3

同时我编写了自己的程序——audria——能够监控一个或多个进程的资源使用情况,包括当前/平均CPU使用情况、虚拟内存使用情况、IO负载等信息。