告警解释
=======
此告警对应指标“数据库最长事务执行时间”超出配置阈值,此指标反映数据库中执行时间最长的事务执行时长。
对系统的影响
-
长事务长时间持锁,阻塞业务语句或运维操作的语句执行。
-
事务不提交,影响存储层面的执行。
事务不提交部分场景如下:
- 锁不释放,导致其他事务等待,线程池满,影响并发,性能劣化。
- 创建逻辑复制槽失败。
- 逻辑复制槽不推进或推进缓慢。
- 影响vacuum,导致表空间膨胀。
- 导致节点替换、节点修复、扩容等运维操作失败。
可能原因
- 业务正常逻辑,需要执行运行时间长的大事务。
- 存在慢SQL。
处理步骤
-
收到告警后,通过查看监控指标查看指标“数据库最长事务执行时间”,确认指标情况以及触发告警的组件。
-
通过如下方式处理:
-
方式一:通过查杀会话终止长事务。
-
方式二:登录实例数据库,执行如下命令,确认执行时间最长的事务,执行3。
SELECT usename, pid, sessionid, query, state, now() - xact_start as elp from pg_stat_activity where pid !=0 and elp IS NOT NULL and usename not in ('rdsAdmin', 'rdsMetric', 'rdsBackup', 'rdsRepl') and state != 'idle' order by elp desc limit 50;- pid:线程ID。
- sessionid:会话ID。
- elp:事务的执行时长。
-
-
如果已有其他告警或业务已经受到影响,且根据其他告警的分析手段已经确定是长事务导致,可以根据2中方式二查询的内容,确认是否能够终止长事务。
-
根据SQL查询出的数据,通过query值进行分析。
-
如果值对应的内容是业务上符合预期的长事务,对长事务SQL做优化。
-
如果值对应的内容不是业务上符合预期的长事务,首先执行如下命令,留存当前执行的堆栈信息,便于后续分析:
SELECT gs_stack($pid);参考《云数据库 GaussDB 24.1.30 维护指南(for 华为云Stack 8.3.1)》中的“故障管理 > 故障处理 > 数据库故障定位方法 > 性能类问题 > 单SQL性能慢分析”章节分析事务执行时间长的原因。
-
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…