![如何使用 /proc/diskstats 数据获取硬盘的即时读/写速度?](https://linux22.com/image/63865/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20%2Fproc%2Fdiskstats%20%E6%95%B0%E6%8D%AE%E8%8E%B7%E5%8F%96%E7%A1%AC%E7%9B%98%E7%9A%84%E5%8D%B3%E6%97%B6%E8%AF%BB%2F%E5%86%99%E9%80%9F%E5%BA%A6%EF%BC%9F.png)
我知道 proc/diskstats 文件显示了这些数据列:
1 - major number
2 - minor mumber
3 - device name
4 - reads completed successfully
5 - reads merged
6 - sectors read
7 - time spent reading (ms)
8 - writes completed
9 - writes merged
10 - sectors written
11 - time spent writing (ms)
12 - I/Os currently in progress
13 - time spent doing I/Os (ms)
14 - weighted time spent doing I/Os (ms)
现在我想知道是否有任何方法可以获得硬盘读写的即时传输速率。
如果我将已完成的读取(第 4 列)除以读取所花费的时间(第 7 列)来获得读取即时速度,是否正确?我想对于不同列的写入也会发生同样的情况。
换句话说,我正在寻找一种方法来计算从设备读取的数据量和写入设备的数据量,如 ubuntu 的 iostat 手册页(kB_read/s 和 kB_wrtn/s 列)。
在我看来,这个解决方案像是长时间平均,它不是即时速度......我是对的吗?
等待一些提示:) 谢谢