常用的磁盘检查命令:
vmstat内存读写情况、iostat查看磁盘读写情况、top查看应用负责、strace -p 查看应用执行动作、sar、df、 MegaCli64、dd、hdparm、du、cat /proc/$pid/io、/proc/sys/vm/block_dump…
监控平台监控指标:
分区读写监控
测试所有已挂载分区是否可读写,作为基础监控项(非0读写有问题)
cat /proc/mounts
磁盘相关采集项
- df.bytes.free:磁盘可用量
- df.bytes.free.percent:磁盘可用量占总量的百分比
- df.bytes.total:磁盘总大小
- df.bytes.used:磁盘已用大小
- df.bytes.used.percent:磁盘已用大小占总量的百分比(监控这个指标报警)
- df.inodes.total:inode总数
- df.inodes.free:磁盘可用inode数目
- df.inodes.free.percent:可用inode百分比
- df.inodes.used:磁盘已用的inode数据
- df.inodes.used.percent:已用inode百分比(监控这个指标报警)
IO相关采集项
计算方法:每秒采集一次/proc/diskstats
- disk.io.ios_in_progress:当前正在运行的实际I / O请求数
- disk.io.msec_read:所有读取花费的总计ms数
- disk.io.msec_total:ios_in_progress> = 1的时间量
- disk.io.msec_weighted_total:统计最近的I / O完成时间和积压。
- disk.io.msec_write:所有写入所花费的总时间
- disk.io.read_merged:相邻的读取请求合并在单个req中
- disk.io.read_requests:读取成功完成的总数(汇总)
- disk.io.read_sectors:成功读取的扇区总数
- disk.io.write_merged:相邻的写请求合并在单个请求中
- disk.io.write_requests:成功写入磁盘的总次数
- disk.io.write_sectors:成功写入扇区数的总次数
- disk.io.read_bytes:单位是byte的数字
- disk.io.write_bytes:单位是byte的数字
下面几个值就是iostat -x 1看到的值
- disk.io.avgrq_sz:平均请求扇区的大小
- disk.io.avgqu-sz:是平均请求队列的长度。毫无疑问,队列长度越短越好
- disk.io.await:每一个IO请求的处理的平均时间(单位是毫秒)
- disk.io.svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
- disk.io.util:在统计时间内所有处理IO时间,除以总共统计时间。是个百分数,比如56.43,表示56.43%。目前我的公司就是监控这个指标报警,之后去排查问题