/proc/diskstats

读取磁盘统计信息,如下所示:

linux-HpdBKE:~ # cat /proc/diskstats
   8       0 sda 11973 1748 936856 98184 73855 47242 1653852 354637 0 231643 454144
   8       1 sda1 493 38 20732 2458 118 52 49116 3263 0 4838 5720
   8       2 sda2 11277 1710 914500 95094 60642 47190 1604736 271281 0 171835 369257
 253       0 dm-0 11730 0 903906 111371 28893 0 650016 375631 0 59881 487078
 253       1 dm-1 399 0 3192 372 0 0 0 0 0 372 372
 253       2 dm-2 538 0 4514 1853 79022 0 954720 371250 0 180292 373117

sda为整个硬盘的统计信息,sda1为第一个分区的统计信息,sda2为第二个分区的统计信息。我们先看两次的sda的统计数据

   8       0 sda 11973 1748 936856 98184 73855 47242 1653852 354637 0 231643 454144
   8       0 sda 11973 1748 936856 98184 73861 47244 1653900 354640 0 231645 454146

这些数据表示的什么意思呢?

前三个域分别是主设备号,次设备号和设备名称。

第1个域:读完成次数 ----- 读磁盘的次数,成功完成读的总次数。值为11973,间隔1s的时间,这个值没有变化。

第2个域:合并读完成次数,为1748, 第6个域:合并写完成次数。为了效率可能会合并相邻的读和写。从而两次4K的读在它最终被处理到磁盘上之前可能会变成一次8K的读,才被计数(和排队),因此只有一次I/O操作。

第3个域:读扇区的次数,为936856,成功读过的扇区总次数。

第4个域:读花费的毫秒数,这是所有读操作所花费的毫秒数。98184

第5个域:写完成次数 ----写完成的次数,成功写完成的总次数。在这1s的间隔时间里,写的次数为6次。

第6个域:合并写完成次数 -----合并写次数。合并写的次数为2次。

第7个域:写扇区次数 ---- 写扇区的次数,成功写扇区总次数。写扇区的次数为48次。

第8个域:写操作花费的毫秒数  ---  写花费的毫秒数,这是所有写操作所花费的毫秒数(用__make_request()到end_that_request_last()测量)。写的次数花费的时间为3ms。

第9个域:正在处理的输入/输出请求数 -- -I/O的当前进度,只有这个域应该是0。当请求被交给适当的request_queue_t时增加和请求完成时减小。

第10个域:输入/输出操作花费的毫秒数  ----花在I/O操作上的毫秒数,这个域会增长只要field 9不为0。

第11个域:输入/输出操作花费的加权毫秒数 -----  加权, 花在I/O操作上的毫秒数,在每次I/O开始,I/O结束,I/O合并时这个域都会增加。这可以给I/O完成时间和存储那些可以累积的提供一个便利的测量标准

原文地址:https://www.cnblogs.com/xingmuxin/p/8657940.html