为了账号安全,请及时绑定邮箱和手机立即绑定

尽管“wait_timeout”减少,MariaDB 进程列表中的大量休眠查询仍减少

尽管“wait_timeout”减少,MariaDB 进程列表中的大量休眠查询仍减少

PHP
慕容3067478 2023-11-03 15:29:56
我最近将我的 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 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

很简单,停止使用持久连接并重新启动服务器。



查看完整回答
反对 回复 2023-11-03
?
大话西游666

TA贡献1817条经验 获得超14个赞

最后我发现问题出在服务器的安装上。我曾经像往常一样更改 my.cnf,并且有些变量在每次重新启动时都会更改,而其他变量则不会更改。

我意识到还有另一个conf文件,并且该文件或verwrite了我在my.cnf文件中对某些变量所做的更改...现在我更改了好的文件,并且服务器正在正常工作。

因此,如果 mariaDB 忽略您在 conf 文件中的更改,请检查是否还有其他文件。


查看完整回答
反对 回复 2023-11-03
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

虽然增加可能会带来好处max_connections,但只会让事情变得更糟。听起来你们之间有很多联系,互相绊倒——没有一个能完成。

看看SHOW PROCESSLIST。具有最大“时间”(“系统”进程除外)的非睡眠进程之一可能是主要的罪犯。

如果进程列表显示超过 30 个非“睡眠”连接,则降低max_connections超时时间。这些将有助于疏通系统,但无法解决问题的根源。

“原因”通常是一个或几个长时间运行的查询阻塞了其他连接。

查看完整回答
反对 回复 2023-11-03
  • 3 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信