常用的磁盘检查命令:

vmstat内存读写情况、iostat查看磁盘读写情况、top查看应用负责、strace -p 查看应用执行动作、sar、df、 MegaCli64、dd、hdparm、du、cat /proc/$pid/io、/proc/sys/vm/block_dump…

监控平台监控指标:

分区读写监控

测试所有已挂载分区是否可读写,作为基础监控项(非0读写有问题)

  1. cat /proc/mounts

磁盘相关采集项

  1. df.bytes.free:磁盘可用量
  2. df.bytes.free.percent:磁盘可用量占总量的百分比
  3. df.bytes.total:磁盘总大小
  4. df.bytes.used:磁盘已用大小
  5. df.bytes.used.percent:磁盘已用大小占总量的百分比(监控这个指标报警)
  6. df.inodes.total:inode总数
  7. df.inodes.free:磁盘可用inode数目
  8. df.inodes.free.percent:可用inode百分比
  9. df.inodes.used:磁盘已用的inode数据
  10. df.inodes.used.percent:已用inode百分比(监控这个指标报警)

IO相关采集项

计算方法:每秒采集一次/proc/diskstats

  1. disk.io.ios_in_progress:当前正在运行的实际I / O请求数
  2. disk.io.msec_read:所有读取花费的总计ms数
  3. disk.io.msec_total:ios_in_progress> = 1的时间量
  4. disk.io.msec_weighted_total:统计最近的I / O完成时间和积压。
  5. disk.io.msec_write:所有写入所花费的总时间
  6. disk.io.read_merged:相邻的读取请求合并在单个req中
  7. disk.io.read_requests:读取成功完成的总数(汇总)
  8. disk.io.read_sectors:成功读取的扇区总数
  9. disk.io.write_merged:相邻的写请求合并在单个请求中
  10. disk.io.write_requests:成功写入磁盘的总次数
  11. disk.io.write_sectors:成功写入扇区数的总次数
  12. disk.io.read_bytes:单位是byte的数字
  13. disk.io.write_bytes:单位是byte的数字

下面几个值就是iostat -x 1看到的值

  1. disk.io.avgrq_sz:平均请求扇区的大小
  2. disk.io.avgqu-sz:是平均请求队列的长度。毫无疑问,队列长度越短越好
  3. disk.io.await:每一个IO请求的处理的平均时间(单位是毫秒)
  4. disk.io.svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
  5. disk.io.util:在统计时间内所有处理IO时间,除以总共统计时间。是个百分数,比如56.43,表示56.43%。目前我的公司就是监控这个指标报警,之后去排查问题