- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
欢迎来到8455线路检测中心技术小课堂。
一、快速确认与临时处理
1. 查看当前连接状态
-- 查看最大连接数配置
SHOW VARIABLES LIKE 'max_connections';
-- 查看当前已连接数
SHOW STATUS LIKE 'Threads_connected';
-- 查看历史峰值连接数
SHOW STATUS LIKE 'Max_used_connections';
-- 查看所有连接详情
SHOW PROCESSLIST;
2. 临时提高连接上限
-- 临时调整(立即生效,重启失效)
SET GLOBAL max_connections = 500;
-- 持久化调整(重启后仍生效)
SET PERSIST max_connections = 500;
3. 手动释放异常连接
-- 终止指定连接(从SHOW PROCESSLIST获取process_id)
KILL 12345;
二、数据库端配置优化
1. 修改配置文件(my.cnf/my.ini)
[mysqld]
max_connections = 500 # 根据内存和业务负载调整
wait_timeout = 300 # 空闲连接5分钟后回收
interactive_timeout = 300 # 交互连接超时时间
2. 连接超时与回收策略
wait_timeout:控制非交互连接的空闲超时
interactive_timeout:控制交互连接的空闲超时
建议值:300-600秒(5-10分钟),避免连接长时间空闲占用资源
三、应用端连接池配置
1. 连接池关键参数(以Druid为例)
# 最大活跃连接数(根据业务并发调整)
spring.datasource.druid.max-active=50
# 初始连接数
spring.datasource.druid.initial-size=5
# 最小空闲连接数
spring.datasource.druid.min-idle=5
# 获取连接最大等待时间(毫秒)
spring.datasource.druid.max-wait=3000
# 连接泄漏检测
spring.datasource.druid.remove-abandoned=true
spring.datasource.druid.remove-abandoned-timeout=60
spring.datasource.druid.log-abandoned-connections=true
2. 连接池配置原则
最大连接数:不超过数据库实例规格的80%,避免压垮数据库
最小空闲连接:保持5-10个空闲连接,减少创建开销
超时时间:连接获取超时30秒,空闲回收5分钟
泄漏检测:启用连接泄漏检测,超时未归还自动回收
四、连接泄漏排查与治理
1. 连接泄漏表现
连接数持续上升,即使业务低峰期也不下降
应用重启后连接数恢复正常,但运行一段时间后再次耗尽
监控显示活跃连接数长期接近最大值
2. 排查方法
代码审查:检查Connection、Statement、ResultSet是否在finally块或try-with-resources中正确关闭
事务管理:避免长事务占用连接,确保事务及时提交/回滚
连接池监控:监控活跃连接数、空闲连接数、等待获取连接的请求数
线程dump分析:抓取应用线程dump,定位哪个请求在占用连接
3. 治理措施
启用连接池的泄漏检测功能(如HikariCP的leakDetectionThreshold)
设置合理的连接空闲超时时间,自动回收长时间未使用的连接
定期执行压力测试,观察连接数变化趋势
8455线路检测中心官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,8455线路检测中心整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,8455线路检测中心期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码

TOP