整理雅加达服务器数据库连接池耗尽导致请求失败的排查实战。
连接池耗尽会导致请求大量失败。以下是实战。
一、确认现象 - 接口报连接超时或池已满 - 数据库连接数接近上限 - 高峰期更明显
二、定位 1) 查看数据库当前连接数与上限 2) 检查应用连接池配置与活跃连接 3) 分析慢查询与长事务 4) 观察是否有连接未释放
三、常见原因 1) 慢查询占用连接过久 2) 长事务未提交 3) 连接泄漏(未关闭) 4) 池上限设置过小 5) 突发流量
四、处理 - 优化慢查询与加索引 - 缩短事务,避免长事务 - 修复未关闭连接 - 合理调大池上限与超时 - 限流与扩容
五、优化 1) 连接复用与超时回收 2) 读写分离 3) 缓存降低数据库压力 4) 监控连接数
六、预防 - 连接数告警 - 压测验证池配置 - 慢查询治理
总结:连接池耗尽要先用连接数与慢查询定位,再从慢查询、事务、泄漏与池配置逐项优化。