几乎没有有用的信息 ![]()
这个集群还是从v4升级到v7的,不知道有没有隐藏的坑
Connection Count中的连接数浮动还是很大的,kill掉的是那类SQL ,是sleep吗
终于破案了,还是应用端的问题,没有释放连接。
总结一下解决方案:
1、查询Sleep的连接,按sql指纹汇总
SELECT
DIGEST,COUNT(1)
FROM INFORMATION_SCHEMA.CLUSTER_PROCESSLIST
WHERE COMMAND = 'Sleep'
GROUP BY DIGEST
ORDER BY COUNT(1) DESC;
2、查询最高的sql指纹对应的sql语句,DIGEST_TEXT就是对应的sql语句。
SELECT
DIGEST,DIGEST_TEXT,PREV_SAMPLE_TEXT
FROM INFORMATION_SCHEMA.CLUSTER_STATEMENTS_SUMMARY
WHERE DIGEST = '9505cacb7c710ed17125fcc6cb3669e8ddca6c8cd8af6a31f6b3cd64604c3098';
3、根据拿到的sql语句反推调用方。本次拿到的sql语句是COMMIT,可以得到事务已提交但连接未释放的结论,排除了是大事务未提交的原因。最后根据具体业务排查到是应用端某个业务提交事务后,未释放连接导致的,修改应用端后,连接数正常。
2 个赞
收回我之前的话,确实是根据这个表完美解决了。
这种情况dashborad没有体现的话,建议自己说个定时任务,把show processlist记录下来,这样根据时间点去找一下就OK了。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。


