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方法解决同类问题。
父主题: 故障排除