ALM-12180 磁盘卡IO
告警解释
MRS 3.3.0及之后版本、MRS 3.1.0.0.10/3.1.5.0.3及之后补丁版本:
- 对于HDD盘,满足以下任意条件时触发告警:
- 系统默认每3秒采集一次数据,在30秒内至少7个采集周期的svctm时延达到6秒。
- 系统默认每3秒采集一次数据,在30秒内至少10个采集周期,磁盘队列深度(avgqu-sz)> 0,iops = 0或带宽 = 0,且ioutil > 99%。
- 系统默认每3秒采集一次数据,在300秒内至少50%次检测到的svctm时延达到1000ms。
- 对于SSD盘,满足以下任意条件时触发告警:
- 系统默认每3秒采集一次数据,在30秒内至少7个采集周期的svctm时延达到3秒。
- 系统默认每3秒采集一次数据,在30秒内至少10个周期,磁盘队列深度(avgqu-sz)> 0,iops = 0或带宽 = 0,且ioutil > 99%。
- 系统默认每3秒采集一次数据,在300秒内至少50%次检测到的svctm时延达到500ms。
系统采集周期为3秒,检测周期为30秒或300秒,当系统连续3个30秒、300秒的周期均不满足对应条件时,告警自动清除。
MRS 3.3.0之前版本:
- 对于HDD盘,满足以下任意条件时触发告警:
- 系统默认每3秒采集一次数据,在30秒内至少10周期,svctm时延超过6秒。
- 系统默认每3秒采集一次数据,在30秒内至少10周期,磁盘队列深度(avgqu-sz)> 0,iops = 0或带宽 = 0,且ioutil > 99%。
- 对于SSD盘,满足以下任意条件时触发告警:
- 系统默认每3秒采集一次数据,在30秒内至少10周期,svctm时延超过2秒。
- 系统默认每3秒采集一次数据,在30秒内至少10周期,磁盘队列深度(avgqu-sz)> 0,iops = 0或带宽 = 0,且ioutil > 99%。
当系统连续90s内不满足以上所有条件时,告警自动清除。
相关参数获取及计算方法请参见参考信息。
告警属性
告警ID |
告警级别 |
是否自动清除 |
---|---|---|
12180 |
重要 |
是 |
告警参数
参数名称 |
参数含义 |
---|---|
来源 |
产生告警的集群或系统名称。 |
服务名 |
产生告警的服务名称。 |
角色名 |
产生告警的角色名称。 |
主机名 |
产生告警的主机名。 |
磁盘名 |
产生告警的磁盘名。 |
对系统的影响
如果IO持续飙高,会对业务操作产生影响导致业务受损,具体可能会产生如下影响:
- 系统性能下降:卡IO会导致系统I/O性能下降,从而影响系统的响应速度和吞吐量。这可能会导致客户的业务运行变慢(例如:作业提交运行变慢、页面响应迟钝、接口响应超时等),甚至出现崩溃或错误。
- 系统故障:卡IO可能会导致系统故障,从而导致客户的业务受到影响。如果慢盘上存储的数据包含关键信息,可能会导致系统崩溃或数据丢失。
可能原因
磁盘老化。
处理步骤
更换磁盘。
- 在FusionInsight Manager界面,选择“运维 > 告警 > 告警”。
- 查看该告警的详细信息,查看定位信息中对应的“主机名”字段和“磁盘名”字段的值,获取该告警上报的故障磁盘信息。
- 更换硬盘。
- 检查告警是否清除。
- 是,操作结束。
- 否,执行5。
收集故障信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
相关参数获取及计算方法如下:
- 在操作系统中执行以下命令采集数据:
其中:
“avgqu-sz”为磁盘队列深度。
“r/s”和“w/s”之和为“iops”。
“rkB/s”和“wkB/s”之和为带宽。
“%util”为“ioutil”。
- MRS 3.1.0版本:
- MRS 3.1.0之后版本svctm的计算方法为:
svctm = (tot_ticks_new - tot_ticks_old) / (rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old)
- 针对MRS 3.3.0之前版本:如果rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old = 0,则svctm = 0
- 针对MRS 3.3.0及之后版本、MRS 3.1.0.0.10/3.1.5.0.3及之后补丁版本:
当检测周期粒度为30s时,如果rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old = 0,则svctm = 0 。
当检测周期粒度为300s时,在rd_ios_new + wr_ios_new - rd_ios_old - wr_ios_old = 0的情况下,如果tot_ticks_new - tot_ticks_old = 0则svctm = 0,否则svctm值为无穷大。
参数获取如下:
系统每3秒执行一次cat /proc/diskstats命令采集数据。例如:
连续两次采集的数据中:
第一次采集的数据中,第4列的数字是“rd_ios_old”,第8列的数字是“wr_ios_old”,第13列的数字是“tot_ticks_old”。
第二次采集的数据中,第4列的数字是“rd_ios_new”,第8列的数字是“wr_ios_new”,第13列的数字是“tot_ticks_new”。
则上图中svctm值为:
(19571460 - 19569526) / (1101553 + 28747977 - 1101553 - 28744856) = 0.6197