Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
Top 1:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
解决问题的思路:
首先先要考虑在我们 MySQL 数据库参数文件里面,对应的最大连接数max_connections 这个参数值是不是设置的太小了,导致客户端连接数超过了数据库所承受的最大值。该值默认大小是151,我们可以根据实际情况进行调整。
对应解决办法:set global max_connections=500但这样调整会有隐患,因为我们无法确认数据库是否可以承担这么大的连接压力,就好比原来一个人只能吃一个馒头,但现在却非要让他吃 10 个,他肯定接受不了。反应到服务器上面,就有可能会出现宕机的可能。所以这又反应出了,我们在新上线一个业务系统的时候,要做好压力测试。保证后期对数据库进行优化调整。
其次可以限制Innodb 的并发处理数量,如果 innodb_thread_concurrency = 0(这种代表不受限制) 可以先改成 16或是64 看服务器压力。如果非常大,可以先改的小一点让服务器的压力下来之后,然后再慢慢增大,根据自己的业务而定。个人建议可以先调整为 16 即可。
MySQL 随着连接数的增加性能是会下降的,可以让开发配合设置 thread pool,连接复用。在MySQL商业版中加入了thread pool这项功能,另外对于有的监控程序会读取 information_schema 下面的表,可以考虑关闭下面的参数。
阅读剩余
版权声明:
作者:SE_Meng
链接:https://www.cnesa.cn/3655.html
文章版权归作者所有,未经允许请勿转载。
THE END