小背景故事:我的 VPS 服务器正在运行一个基于网络的游戏。(PHP/MySQL) 我们还有一个相当受欢迎的论坛,两个程序的数据库都在同一台服务器上。该服务器还使用 Apache 为页面提供服务。
有时当论坛真的很忙时,我们会看到繁忙的数据库也影响了游戏。所以我们把论坛数据库放在另一台服务器上。现在论坛正在通过 TCP/IP 连接连接到另一台服务器。
这样做的结果很棒,平均服务器负载下降了很多,游戏很少变慢。但有时,我们会遇到非常高的负载峰值,然后我发现 Apache 无法提供 PHP 页面。MySQL 的进程列表为空。然后有很多 Apache 连接(我可以通过 server-status 或 top 看到)。请求是正常的,没有 DDoS 的迹象。流量或 CPU 并没有比正常高很多。
上图显示了其中一个时间。之前和之后是服务器负载正常的情况。在我们将论坛数据库放在另一台服务器上之后,这种情况偶尔会发生。
任何线索在哪里看?如果我需要提供更多信息,请告诉我。