那么,我们应该读取什么值来获得每个进程每秒的输入输出操作?
我试过 /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,这对我来说并不正确。
有任何想法吗?
我打算做的是将 ZFS 存储连接到我的网络。使用 iSCSI 或 SRP 将其连接到管理程序服务器。并在其上存储 KVM 图像(逻辑卷)。
此设置是否会受益于 ZFS 在内存中的缓存?