最近系统监测到慢SQL频繁发生,又不是同一个sql,每个小时会发生个几次
第一时间排查了sql,是一个简单的sql,表也是小表,甚至有个表只有十几行,更甚至那个sql还走了索引,就是这种情况下还发生了慢sql,不过这个sql大多数情况下都是十几毫秒就完成,就是每个小时会发生个几次900毫秒
在数据库多次执行都无法复现那么慢的
由于这个慢sql执行时间是在应用侧记录的,于是又怀疑是不是网络波动,于是在应用与数据库之间建立了长ping,但是在再次发生慢sql的时候长ping没有任何波动,甚至数据库的性能,cpu 内存 并发 负载都没有多大的变化
于是开始抓包,发现确实是数据库执行了这么久,最终发现thread_pool_stall_limit=500,直接将thread_pool_stall_limit改成了10,慢sql不再发生