php - 将 TCP/IP 与 MySQL 结合使用时出现的问题

标签 php mysql apache tcp

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

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

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

Server load

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

有什么线索可以去哪里寻找吗? 如果我需要提供更多信息,请告诉我。

最佳答案

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

您可以通过添加

向机器人指示向您的网站发出请求的速度
Crawl-delay: [number]

到您的robots.txt

关于php - 将 TCP/IP 与 MySQL 结合使用时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612880/

相关文章:

php - 将 HTML Tidy 可执行文件与 php 一起使用,而不是编译

php - MySQL Php 将 <h2> 添加到数据库中的文本

php - 无法在 WAMP 上运行 PHP 脚本

apache - 从 Apache 配置中删除/var/www/icons 别名

php - codeigniter hello world 在 Ubuntu 上失败

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 使用多个文件的最后使用的 ID 将多个值插入到 mysql

sql - 如何在分区的 MySQL 数据库中的字段上添加唯一索引?

mysql - Ruby on Rails - 任何性能诊断工具?

apache - 如何在运行Apache的端口443上运行socket.io?