MySQL连接数优化
问题
使用Tomcat监听器执行定时(每0.5秒)扫描任务表的时,发现测试数据库的连接数每5分钟左右提示”Too many connections”(连接数过多)
配置
数据库类型 MySQL 5.6
CPU 3核
数据库内存 240MB
最大IOPS 150
最大连接数 60
原因
硬件原因
1、数据库配置低
2、连接时间过长
软件原因
1、每次执行扫描连接后,没有释放连接
2、部分服务存在性能差,执行时间太长
解决
硬件方面
1、开发测试使用,暂无必要升级配置
软件方面
1、确保每次通信完毕关闭连接
2、重构慢日志性能较差的服务
3、修改阿里云MySQL参数设置
interactive_timeout
针对交互式连接,如MySQL客户端连接数据库是交互式连接
interactive_timeout 默认是7200秒,改为10秒
wait_timeout
针对**非交互式连接**,如JDBC连接数据库是非交互式连接
wait_timeout 默认是86400秒,改为60秒