ALM-27009 正在运行的SQL执行平均耗时超过阈值
告警解释
系统每30秒周期性检查DBServer数据库正在运行的SQL执行平均耗时,默认正在运行的SQL执行平均耗时大于10秒即认为该SQL超阈值。若采集的正在运行的SQL执行平均耗时连续n次(n为设定的平滑次数,默认值为3)超过设定阈值(默认阈值为10s)时,系统将产生此告警。
当平滑次数为1,DBServer正在运行的SQL执行平均耗时小于或等于阈值时,该告警恢复;当平滑次数大于1,DBServer正在运行的SQL执行平均耗时连续n次(n为设定的平滑次数)小于阈值的90%时,该告警恢复。
本章节仅适用于MRS 3.6.0-LTS.1及之后版本。
告警属性
| 告警ID | 告警级别 | 告警类型 | 业务类型 | 是否可自动清除 |
|---|---|---|---|---|
| 27009 | 重要 | 业务质量告警 | FusionInsight Manager | 是 |
告警参数
| 类别 | 参数名称 | 参数含义 |
|---|---|---|
| 定位信息 | 来源 | 产生告警的集群名称。 |
| 服务名 | 产生告警的服务名称。 | |
| 角色名 | 产生告警的角色名称。 | |
| 主机名 | 产生告警的主机名。 | |
| 附加信息 | 门限值 | 告警触发的阈值。 |
| 当前值 | 当前采集的指标值。 |
对系统的影响
- SQL长期运行时间长会导致系统资源占用高,影响其它任务获取资源。
- 导致业务任务运行缓慢,影响用户体验。
可能原因
- 告警阈值配置不合理。
- 正在运行的SQL执行平均耗时较长。
- 系统资源使用率过高导致任务运行缓慢。
- SQL本身业务逻辑复杂或者数据量过大导致任务运行缓慢。
处理步骤
检查阈值设置是否合理。
- 在FusionInsight Manager,选择“运维 > 告警 > 阈值设置 > 待操作集群的名称 > DBService > 数据库 > DBService正在运行的SQL执行平均耗时”,查看该告警阈值是否合理(默认值10为合理值)。
- 单击“操作”列的“修改”,根据实际服务的使用情况修改告警阈值。
- 选择“集群 > 服务 > DBService”,在“概览”页面查看“DBService正在运行的SQL执行平均耗时”图表,检查数据库SQL运行平均耗时是否低于设置的阈值。
- 等待2分钟查看告警是否自动恢复。
- 是,处理完毕。
- 否,执行步骤 5。
检查正在运行的SQL执行平均耗时。
- 以omm用户登录DBService主管理节点,执行以下命令登录DBService数据库。
gsql -p 20015 -U omm -W ${数据库密码}
- 执行以下SQL语句,查看数据库SQL运行平均耗时是否超过阈值。
- 执行如下语句获取正在运行的SQL执行总耗时。
select sum(EXTRACT(EPOCH FROM (now() - QUERY_START::timestamptz))) AS totalSeconds from pg_stat_activity where STATE = 'active' and pid <> pg_backend_pid();
- 执行如下语句获取正在运行的SQL数量。
select count(1) from pg_stat_activity where STATE = 'active' and pid <> pg_backend_pid();
- 执行如下命令计算平均耗时,并确认平均耗时是否超过阈值。
- 执行如下语句获取正在运行的SQL执行总耗时。
- 根据实际情况处理长耗时的SQL任务或者修改告警阈值,并等待2分钟,查看告警是否清除。
- 是,执行完毕。
- 否,执行步骤 8。
收集故障信息
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。