MySQL连接数优化

Author Avatar
itjun 8月 03, 2017
  • 在其它设备中阅读本文章

问题

使用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秒