鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Performance Schema查询锁等待事件结果与预期不符

问题现象描述

Performance Schema(以下简称PFS)查询锁等待事件结果与预期不符:缺失了某些预期的等待事件,或包含某些预期不产生的等待事件。其原因和解决方法是什么?

关键过程、根本原因分析

performance_schema.events_waits_history_long表包含所有线程中已全局结束的N个最近的等待事件,N为event_waits_history_long表大小,可通过performance_schema_events_waits_history_long_size变量设置,该变量默认值为10000,最大值1048576。

当表中记录超过该变量设置,即表已满时,若此时产生需要记录的等待事件,将丢弃掉最旧的行记录,保存最新产生的等待事件行记录。

结论、解决方案及效果

若查询锁等待事件发现返回结果缺失了某些预期的等待事件,可将events_waits_history_long表大小设置为更大的值,即在配置文件中增加如下行,以获取预期的等待事件。

performance_schema_events_waits_history_long_size=1048576

若查询锁等待事件发现返回结果包含某些预期不产生的等待事件,则可能是由于events_waits_history_long表中包含了历史SQL的等待事件记录。可执行如下命令,以清除历史SQL产生的等待事件记录,然后重新执行SQL、查询等待事件。

TRUNCATE table performance_schema.events_waits_history_long;

PFS中其他性能事件记录与锁等待事件类似,可通过对相应表配置大小参数、TRUNCATE table方法解决同类问题。