标签:sql ESS proc 有关 love 一个 auth 会话 query end
1 mysql通过show processlist 大量处于open /close table阶段
分析 open/close table基本是与table_cache有关,mysql相关的参数大概有2个
table_open_cache 表缓存个数,与数量有关
table_open_cache_instances 涉及缓存表缓存的锁争用
解决方式 1 降低查询本身频率 2 优化慢sql 3 设置读写分离 4 调整以上两个数值
2 mysql在执行truncate时候,大量表处于open/close状态,但是一旦truncate完成,这种状态就会消失
分析 这种案例和上面的案例有些相似,却又不同.八怪大神经过pt-stack跟踪源码问题,定位到了是AHI导致的可能BUG问题
解决方式 关闭 自适应HASH索引
补充: 1 上面也有一个因为AHI导致的BUG问题
2 是否选择关闭AHI,要看关闭前后的程序效率对比,如果大量下降,请不要关闭.如果没什么影响,则建议关闭
3 query end的堆积
描述 show processlist 发现大量处于query end的事务线程,导致线程堆积
分析 大量query end主要是由于flush log刷新阻塞导致的,(可能由大事务引起的)
解决办法 1 定位大事务进行解决优化
补充 处于query状态的几种情况
1 磁盘已满,无法刷新LOG
2 高并发高负载刷新LOG阻塞
总结 基本都是由于事物二阶段提交不能高速进行导致的,出现这种状态要注意,补充下, select语句也有query end
4 waiting for meta lock的堆积
描述 会话阻塞,发现大量处于 等待元数据锁的会话
分析 是由于有事务把持MDL锁导致的
解决办法 查找把握元数据锁的元凶,我的另一篇文章有介绍,请自行搜索
5 unauthenticated user的 大量出现
描述 会话出现大量的未验证用户
解决办法 1 增加skip-name-reslove
2 增加mysql back_log值
标签:sql ESS proc 有关 love 一个 auth 会话 query end
原文地址:https://www.cnblogs.com/danhuangpai/p/11572033.html