$ cat /proc/diskstats
   8       0 sda 61956814 17784 10611545630 25247251 81500542 90293241 18537974922 158892176 0 19476563 183932800
   8       1 sda1 36834 0 711618 8857 1066794 1088773 4311554 5979 0 10784 14759
   8       2 sda2 61919793 17784 10610832348 25238366 80433748 89204468 18533663368 158886197 0 19467225 183912764
 253       0 gg-0 5623688 0 126996682 1287038 20634674 0 185895864 1189423 0 1248510 2481206
 253       1 gg-1 128 0 2136 15 0 0 0 0 0 15 15
 253       2 gg-2 56342914 0 10483832346 23884963 149036514 0 18347767504 183502049 0 18282017 207482318 主号    次号  名称 成功读 合并读      扇区读    读时间
 

每一列的含义分别为:

  • 第一列为 设备号
  • 第二列为 次设备号
  • 第三列为 设备名称
  • 第四列为 成功完成读的总次数
  • 第五列为 合并读次数,为了效率可能会合并相邻的读和写,从而两次4K的读在它最终被处理到磁盘上之前可能会变成一次8K的读,才被计数(和排队),因此只有一次I/O操作。
  • 第六列为 读扇区的次数

  • 第七列为 读花的时间(ms),这是所有读操作所花费的毫秒数(用__make_request()到end_that_request_last()测量)

  • 第八列到第十一列分别是写

  • 第十二列为 I/O的当前进度,只有这个域应该是0,如果这个值为0,同时write_complete read_complete io_processing 一直不变可能就就是IO hang了。

  • 第十三列为 输入输入花的时间(ms),花在I/O操作上的毫秒数,这个域会增长只要field 9不为0。
  • 第十四列为 输入/输出操作花费的加权毫秒数,

可以参考:

/sys/block/device_name/stat的输出和上面各个字段是一样的。

02-13 10:16