小编jer*_*roe的帖子

解释 /proc/diskstats 中的读、写和总 IO 时间

我注意到,当我查看输出时,/proc/diskstats读取的总时间、写入的总时间和执行 IO 的总时间之间存在差异。例如,我看到一个条目/proc/diskstats是:

$ cat /proc/diskstats
...
8       0 sda 944150584 590524 235547588959 780672196 833280352 534699043 322507689696 3472000824 1 812190100 4246357772
...
Run Code Online (Sandbox Code Playgroud)

根据https://www.kernel.org/doc/Documentation/iostats.txt上的文档,

字段 4 -- 读取花费的毫秒数 这是所有读取花费的毫秒总数(从 __make_request() 到 end_that_request_last() 测量)。

字段 8 -- 写入花费的毫秒数 这是所有写入花费的毫秒总数(从 __make_request() 到 end_that_request_last() 测量)。

字段 10 -- 花费在 I/O 上的毫秒数 只要字段 9 不为零,该字段就会增加。

因此,我希望第十个字段是第四个和八个字段的总和,因为我希望总 IO 时间是阅读时间和写作时间的总和。但是,我从来没有注意到这种情况,而且我一直观察到第四和第八个字段的总和大于第十个(例如,在上面的行中 (780672196 + 3472000824 - 812190100 = 3440482920).我想知道是否有人可以解释为什么这些数字不同,似乎第十个字段试图捕获与第四个和第八个字段的总和不同的东西。

linux io proc

6
推荐指数
1
解决办法
5479
查看次数

标签 统计

io ×1

linux ×1

proc ×1