/proc/diskstats
访问量:1559

一、简介

/proc/diskstats 文件中,包含了设备相关的信息,即磁盘相关的信息。文件内容如下:

   1       0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1       1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1       2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1       3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1       4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1       5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1       6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1       7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1       8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1       9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1      10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1      11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1      12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1      13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1      14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1      15 ram15 0 0 0 0 0 0 0 0 0 0 0
   7       0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7       1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7       2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7       3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7       4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7       5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7       6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7       7 loop7 0 0 0 0 0 0 0 0 0 0 0
 252       0 vda 9585497 1982845 536785922 270901280 106708307 438802239 4369057904 1693205040 0 439098969 1970941101
 252       1 vda1 9584936 1982626 536779682 270899348 106674766 438802239 4369057896 1692048644 0 438849123 1969781937

上面,每一行对应着一个块设备。

什么是块设备?

块设备里面存储的数据,可以随机访问,入帮硬盘、光盘、U盘等,通常以块为单位的进行存取,块这个概念是操作系统层面的,落实到硬盘其实硬盘存取数据的最小单位是扇区(512字节),块通常是由1个或多个扇区组成。

相对于块设备,还存在字符设备,其不能随机跳跃式读取。

ram0~ram15设备是什么?

ram0~ram15是RamDisk,将内存的一部分当做硬盘(Disk)来使用。RamDisk有固定的大小,可以像正常硬盘分区那样去使用。 就操作时间来讲,RamDisk比真实的物理硬盘快很多,当系统关闭或断电时,保存在RamDisk中的数据会全部丢失。RamDisk可以成为一个存放临时数据的好地方。

loop0~loop7设备是什么?

loop设备,是一种伪设备,是通过利用文件来模拟块设备的一种方式。

每一列,从左往后,字段描述如下:

1 设备号2 编号3 设备名称4 读完成次数 5 合并读完成次数6 读扇区次数7 读操作花费毫秒数8 写完成次数9 合并写完成次数10 写扇区次数11 写操作花费的毫秒数 12 正在处理的输入/输出请求数13 输入/输出操作花费的毫秒数14 输入/输出操作花费的加权毫秒数
10ram000000000000
11ram200000000000
71loop000000000000
2521vd1
958493619826265367796822708993481066747664388022394369057896169204864404388491231969781937

二、应用

1、如何计算磁盘IO操作百分比

采样两个足够短的时间间隔的磁盘快照,标记为t1、t2,计算t1时间的输入/输出操作花费的毫秒数used1,计算t2时间的输入/输出操作花费的毫秒数used2。

于是磁盘IO操作百分比为:

100 * (used2 -  used1)/ (t2 - t1