连接池被打满,请求全部排队超时

先分清是池太小还是连接不还。抓一次线程栈,大量线程卡在获取连接上就是池被打满;再看 active 计数,长期贴着上限不降,多半是慢 SQL 或长事务占住了连接。应急把池上限和数据库 max_connections 同步抬高一档,根治要缩短事务范围,别在事务里调外部接口。另外池的 maxLifetime 要小于数据库 wait_timeout,否则会拿到已被服务端断掉的死连接。

SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
SHOW PROCESSLIST;   -- 看有没有长时间处于 Sleep / Query 的连接
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容