今天早上,我注意到我们的 MySQL 服务器负载飙升。Max 应该是 8,但它在某一时刻达到了 100 以上。当我检查进程列表时,我发现大量处于query end
状态的更新查询(简单的,递增“hitcounter”)。我们无法杀死他们(好吧,我们可以,但他们会killed
无限期地留在该州)并且我们的网站陷入停顿。
我们在重新启动服务时遇到了很多问题,不得不强行终止一些进程。当我们这样做时,我们能够让 MySQLd 重新启动,但进程立即又开始建立起来。据我们所知,此时尚未更改任何配置。
因此,我们innodb_flush_log_at_trx_commit
从 2 更改为 1(请注意,我们需要符合 ACID),希望这可以解决问题,并将 PHP/PDO 中的连接设置为持久。这似乎工作了一个小时左右,然后连接再次开始耗尽。
幸运的是,我在几个月前建立了一个从服务器,并且能够对其进行推广,现在它正在填补空缺,但我需要了解为什么会发生这种情况以及如何阻止它,因为从服务器的功能严重不足和主人相比,所以我需要尽快切换回来。
有人有什么想法吗?莫非是有什么需要清理的?我不知道是什么,也许是二进制日志之类的?有什么想法吗?我们可以尽快将这台服务器恢复为主服务器,这一点非常重要,但坦率地说,我不知道去哪里看,到目前为止我所做的一切都只是临时修复。
帮助!:)