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

本文介绍了在Linux服务器运维中遇到磁盘I/O过大告警时,如何使用iotop分析I/O密集进程,通过iostat监测磁盘设备状态,以及进行磁盘压力测试来确认是否为误报。重点讲解了%util利用率的局限性以及正确诊断方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1、iotop

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

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

在这里插入图片描述

2、iostat

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

$ iostat -xm 1

在这里插入图片描述

  • 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)

最终确认磁盘写入速率正常,此告警忽略即可。
在这里插入图片描述
耗时:7.70452 s, 写入速度:136 MB/s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无糖可乐没有灵魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值