首批通过分布式安全可靠测评,为关键业务系统打造
os_tsar_nvme_ioawait OBserver 节点 NVMe 磁盘 ioawait 高
更新时间:2026-04-14 15:16:08
告警描述
磁盘 IO 的几个重要指标中:
- svctm 反映磁盘的性能,一般小于 20 ms。
- ioawait 反映 IO 的处理效率,ioawait 越低,越说明 IO 队列不拥塞,ioawait 接近于 svctm,说明 IO 几乎不等待(ioawait 略大于 svctm 是可接受的)。
- io_util 为单位时间内设备 IO 占比,反应 IO 忙线程度。
- io_qusize 为 IO 队列长度,当队列长度越大,ioawait 可能越高。
连续 30 秒 io_await ≥ 20 ms、io_util ≥ 98% 且 io_qusize ≥ 20 则触发该告警。
告警原理
| 参数 | 值 |
|---|---|
| 监控指标 | io_util, io_qusize, io_await |
| 指标来源 | 主机基础监控,采集自 node_exporter 类比命令 iostat -dx 结果中的指标:util(io_util),avgqu-sz(io_qusize),await(io_await) |
| 采集指标 | io_util, node_disk_io_time_weighted_seconds_total, io_await |
| 监控表达式 | |
| 采集周期 | 1 秒 |
规则信息
| 监控表达式 | 监控指标含义 | 默认阈值 | 检测周期 | 消除周期 |
|---|---|---|---|---|
| io_await > 20 and io_util >= 98 and io_qusize >= 20 | 10 秒 | 5 分钟 |
告警信息
| 告警触发方式 | 告警等级 | 范围 |
|---|---|---|
| 基于监控指标的表达式 | 严重 | 服务器 |
告警模板
- 告警概述
- 模板:${alarm_target} ${alarm_name}
- 样例:ob_cluster=obcluster-1631964370:svr_ip=xxx.xxx.xxx.xxx:device=dm-0 OBserver NVMe 磁盘 ioawait 过高
- 告警详情
- 模板:集群:${ob_cluster_name},主机:${host},告警:${alarm_name},OB 磁盘:${ob_device},device ${device},io await ${io_await_value_zh_cn} 超过 ${io_await_alarm_threshold} ms,io util ${io_util_value_zh_cn} 超过 ${io_util_alarm_threshold} %,io qusize ${io_qusize_value} 超过 ${io_qusize_alarm_threshold}。
- 样例:集群:obcluster-1,主机:xxx.xxx.xxx.xxx,告警:OB server NVMe 磁盘 ioawait 高,OB 磁盘:ob_log,device dm-0,io await 30 毫秒 超过 20 毫秒,io util 99 % 超过 98 %,io qusize 33 超过 20。
对系统的影响
IO util 大于 98% 时说明 IO 设备满负荷运行;若 ioawait 大于 20 ms,可能是磁盘设备处理效率低或有大量 IO 请求,此时会影响转储、合并操作的进度。
OB 磁盘分为数据盘(/data/1)、日志盘(/data/log1)、安装盘(/home),该告警针对数据盘和日志盘生效。当数据盘和日志盘出现 IO 异常时,将影响 OBServer 节点服务。
可能原因
- 磁盘性能较差。
- CPU 性能较差,无法处理大量的 IO 请求。
- 存在高并发 IO 请求。
处理方法
排查是否为磁盘、CPU 性能差引起的,此问题可通过升级硬件资源来规避。
确认请求流量是否符合预期,并排查 IO 异常的原因:
# 查看 IO 统计信息 iostat -dx # 查看 IO 高的进程 iotop # 查看进程有哪些文件被写入,写入量是否符合预期等 lsof -p <pid>