用于记录特定进程的所有统计信息的脚本

用于记录特定进程的所有统计信息的脚本

我想监视特定进程的 CPU 使用情况、磁盘读/写使用情况,例如./myprocess

监视 CPUtop命令似乎是一个不错的选择,而读取和写入命令iotop似乎是一个方便的选择。

例如,为了监控每秒的读/写,我使用命令iotop -tbod1 | grep "myprocess"

我的困难是我只想存储三个变量,即读/秒、写/秒、CPU 使用率/秒。您能帮我编写一个脚本,将上述三个变量的输出组合起来topiotop存储到日志文件中吗?

谢谢!

答案1

怎么样PID统计?。你尝试过吗?您可能需要要监视的进程的 Pid,但这应该可以通过命令ps和一些简单的awk操作轻松获得。

它是软件包的一部分sysstat,你可以在基于 .deb 的系统中通过输入以下命令进行安装apt-get install sysstat

答案2

您可以尝试使用prtstat( sudo apt-get install psmisc):

watch -n1 prtstat <PID> | tee mylog.log

它每秒都会转储进程统计信息。如果您有兴趣解析这些数据,请使用原始版本 (-r)。

例如,如果您想要 utime,您可以将上面的命令扩展为:

prtstat -r 30557 | grep -w utime | awk '{print $4}'

答案3

您可以使用奥德里亚对于此任务:

audria -d 1 $(pidof myprocess) | awk -F "," '{print $7, $28, $32}'

这会将延迟设置为1二、监控我的进程并打印当前的中央处理器(字段 7),读取字节/秒(字段 28)和写入字节/秒(字段 32)。这里的读/写计数器不包括缓存字节,如果您想包含它们,请选择字段2630反而。

如果需要,audria 还能够执行您的流程,从一开始就对其进行监控。您还可以选择较短的时间间隔或指定要监视的多个 PID。

答案4

/proc/$PID/status您可以尝试定期查看内容;这应该会为您提供大量您正在寻找的信息。

相关内容