在 Linux 上获取进程的 IOPS

isp*_*rto 6 linux iops

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

我试过 /proc/[pid]/io 返回这些值:

根@节点:〜#猫的/ proc / 31597 / IO
rchar:213260190
WCHAR:462308212
SYSCR:23275044
syscw:47797624个
read_bytes:894867968个
write_bytes:27645691392
cancelled_write_bytes:0

从定义:

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

所以,我认为syscw 的最后一个值减去 syscw 的前一个值应该给我进程 31597 执行的写操作计数

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

有任何想法吗?

cst*_*mas 2

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

您需要 2.6.20 或更高版本的内核和 root 权限。

  • 我不是在寻找字节数。我正在寻找操作计数。 (9认同)