获取 Linux 上进程的 IOPS

获取 Linux 上进程的 IOPS

那么,我们应该读取什么值来获取每个进程每秒的输入输出操作数?

我已经尝试过 /proc/[pid]/io,它返回以下值:

root@node:~# cat /proc/31597/io
rchar: 213260190
wchar: 462308212
syscr: 23275044
syscw: 47797624
读取字节数: 894867968
写入字节数: 27645691392
取消写入字节数: 0

根据定义:

syscr、syscw - I/O 操作数计数器(分别为:读取和写入)。我们可以使用它们来计算一次系统调用中传递的平均数据量。

所以我思考一秒钟后,syscw 的最后一个值减去 syscw 的前一个值,应该可以得到进程 31597 执行的写入操作计数

但是,当该过程以大约 5MB/秒的速度进行写入(小文件)时,我得到的写入值为 6500 IOPS,这对我来说看起来不正确。

有任何想法吗?

答案1

iotop可能是您正在寻找的程序。它类似于 top,但用于 I/O。

您需要 2.6.20 或更好的内核和 root 权限。

相关内容