0

小背景故事:我的 VPS 服务器正在运行一个基于网络的游戏。(PHP/MySQL) 我们还有一个相当受欢迎的论坛,两个程序的数据库都在同一台服务器上。该服务器还使用 Apache 为页面提供服务。

有时当论坛真的很忙时,我们会看到繁忙的数据库也影响了游戏。所以我们把论坛数据库放在另一台服务器上。现在论坛正在通过 TCP/IP 连接连接到另一台服务器。

这样做的结果很棒,平均服务器负载下降了很多,游戏很少变慢。但有时,我们会遇到非常高的负载峰值,然后我发现 Apache 无法提供 PHP 页面。MySQL 的进程列表为空。然后有很多 Apache 连接(我可以通过 server-status 或 top 看到)。请求是正常的,没有 DDoS 的迹象。流量或 CPU 并没有比正常高很多。

服务器负载

上图显示了其中一个时间。之前和之后是服务器负载正常的情况。在我们将论坛数据库放在另一台服务器上之后,这种情况偶尔会发生。

任何线索在哪里看?如果我需要提供更多信息,请告诉我。

4

2 回答 2

0

它可能是为您的网站编制索引的机器人/蜘蛛。您可以通过记录用户代理字符串进行检查。

您可以通过添加

Crawl-delay: [number]

到你的robots.txt.

于 2013-05-17T15:39:30.657 回答
0

一种可能性是人们访问具有大量外部资源的页面的趋势。外部脚本、ajax 请求、样式表、图像、声音,有时包括/必需的 php 页面,需要新的连接。快速搜索在 ServerFault 上发现了一个类似的问题。许多新线程和/或同时运行的连接可能会产生内存或连接问题。

于 2013-05-17T15:39:42.240 回答