我最近将我的 PHP 应用程序迁移到了使用 PHP 7.3 和 MariaDB 的新服务器(之前是 PHP 5.5 和 MySQL 5.5)。我遇到一些“连接过多”错误的问题。我想我的应用程序必须改进才能纠正这个问题。为此,我使用以下值更改了 mariaDB 服务器配置:max_connections = 600connect_timeout = 5wait_timeout = 60interactive_timeout = 60尽管有这些增强功能,我仍然遇到同样的问题,一些休眠进程仍然存在,时间超过 60 秒...并且线程数正在增加...直到 max_coonections 值。当然,我已经重新启动了服务器。我的 PHP 应用程序使用 Mysqli 和持久连接。
3 回答
大话西游666
TA贡献1817条经验 获得超14个赞
最后我发现问题出在服务器的安装上。我曾经像往常一样更改 my.cnf,并且有些变量在每次重新启动时都会更改,而其他变量则不会更改。
我意识到还有另一个conf文件,并且该文件或verwrite了我在my.cnf文件中对某些变量所做的更改...现在我更改了好的文件,并且服务器正在正常工作。
因此,如果 mariaDB 忽略您在 conf 文件中的更改,请检查是否还有其他文件。
吃鸡游戏
TA贡献1829条经验 获得超7个赞
虽然增加可能会带来好处max_connections
,但只会让事情变得更糟。听起来你们之间有很多联系,互相绊倒——没有一个能完成。
看看SHOW PROCESSLIST
。具有最大“时间”(“系统”进程除外)的非睡眠进程之一可能是主要的罪犯。
如果进程列表显示超过 30 个非“睡眠”连接,则降低max_connections
超时时间。这些将有助于疏通系统,但无法解决问题的根源。
“原因”通常是一个或几个长时间运行的查询阻塞了其他连接。
- 3 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消