如何读取任何进程'/proc/pid/io

如何读取任何进程'/proc/pid/io

我正在尝试监视每个进程的磁盘活动。我发现如何执行此操作的一种方法是读取 /proc/pid/io 文件并将字段与之前读取的字段进行比较。工作正常,除了我的监控进程似乎只能读取一些 io 文件(例如它没有读取 apache 的权限)。如何读取别人的io?也许还有更好的方法来实现这个目标?

编辑显然我可以以 root 身份运行该进程,但我想避免这种情况

答案1

使用iotop

它应该在您的 Redhat/Centos/Fedora 机器的存储库中可用(如果尚未安装)。

它输出与 类似的信息top,但您将获得 IO 统计信息(磁盘读取、写入和交换),而不是 CPU/内存统计信息。

-p您可能-u会对这些选项--only感兴趣。

例如,要查看 ID 为 5435 的进程的 IO 活动,请使用:

iotop -p 5435

man页面:

   -p PID, --pid=PID
          A list of processes/threads to monitor (all by default).

   -u USER, --user=USER
          A list of users to monitor (all by default)

   -P, --processes
          Only show processes. Normally iotop shows all threads.

相关内容