0
点赞
收藏
分享

微信扫一扫

Linux ❀ 磁盘IO较大故障告警排查确认方法



文章目录

  • 1、iotop
  • 2、iostat
  • 3、磁盘压力测试


问题描述:在日常运维工作中,经常会遇到Linux服务器出现Disk磁盘I/O( I/O 英文全称是 Input/Output,中文译为 输入与输出,通常指存储器与其他设备之间的数据交换操作)过大告警问题需要紧急处理,本文将详细介绍此问题的排查方法与技巧。

1、iotop

iotop是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI回显,其中包括PID、用户、I/O、进程等相关信息。

# 只显示IO操作进程,查看哪些进程正在使用磁盘进度读写操作,以进程维度分析最高IO原因
$ iotop -ob

Linux ❀ 磁盘IO较大故障告警排查确认方法_服务器

2、iostat

iostat功能是用于监视系统I/O设备使用情况。

$ iostat -xm 1

Linux ❀ 磁盘IO较大故障告警排查确认方法_ios_02

  • CPU属性 avg-cpu
  • %user:CPU处在用户模式下的时间百分比
  • %nice:CPU处在带NICE值的用户模式下的时间百分比
  • %system:CPU处在系统模式下的时间百分比
  • %iowait:CPU等待输入输出完成时间的百分比
  • %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
  • %idle表示磁盘在1秒内空闲的时间占总时间的百分比。也就是说,数值越高,表示磁盘的空闲时间越多,负载越轻,性能越好;数值越低,表示磁盘的空闲时间越少,负载越重,性能越差;%idle是评估磁盘负载和性能的重要指标之一
  • 磁盘属性:
  • Device:磁盘设备名称
  • rrqm/s:每秒合并的读请求次数
  • wrqm/s:每秒合并的写请求次数
  • r/s:每秒完成的读次数
  • w/s:每秒完成的写次数
  • rkB/s:每秒读取的数据量(单位为KB)
  • wkB/s:每秒写入的数据量(单位为KB)
  • avgrq-sz:平均每个请求的扇区数。
  • avgqu-sz:平均请求队列长度
  • await平均每个请求的等待时间(毫秒)
  • r_await:平均每个读请求的等待时间(毫秒)
  • w_await:平均每个写请求的等待时间(毫秒)
  • svctm:平均每个请求的服务时间(毫秒)
  • %util磁盘利用率,磁盘在1秒钟内的忙碌时间占总时间的百分比,该值只代表持续写入的时间在1s内的占比,并不能体现出磁盘写入的大小,数值越高,表示磁盘的写入时间越高;数值越低,表示磁盘的空闲时间越多

注意点:目前市面上较多的告警规则都使用iostat命令的%util利用率取值,该值的磁盘IO信息反馈并不准确,不能体现出磁盘的写入速率大小,只反应出写入时间占比。例如:某个磁盘/dev/sda1在1s内持续写入1b/s,此时%util数值为100%,必然触发告警,但现网中并没有高额的数据写入,因此只能判断为误报。若需要继续判断磁盘是否存在异常需要进行压力测试,使用下面方法即可。

3、磁盘压力测试

# 测试写入1G文件速度
$ dd if=/dev/zero of=${dst_file_path}/test bs=1M count=1000 oflag=direct
# 在目标文件目录下创建一个名为test的文件(可根据现场环境自行修改目标路径),总计大小为1000MB,即1GB(块大小设置为1M,数量为1000)

最终确认磁盘写入速率正常,此告警忽略即可。

Linux ❀ 磁盘IO较大故障告警排查确认方法_服务器_03


耗时:7.70452 s, 写入速度:136 MB/s


举报

相关推荐

0 条评论