Vps 反应慢

Vps slow response

我买了一个 vps 来将我的后端从共享 hos 转移到它。我已经安装了 apache2、php、mysql 服务器。我的 vps 配置:

当我发出测试请求时,一切都在高速运行,我在 100 毫秒内收到响应。但是当我的用户(每天 25-35k)开始使用这个服务器时,它变得非常慢。有时我需要一两分钟才能得到回复,有时根本就没有回复。

我正在使用管理面板检查服务器负载。它告诉我所有请求每 5-10 分钟只有 400 KB 的传出数据和少于 50 KB 的传入数据。服务器使用不到可用 RAM 的一半。

我的 apache 配置是:

<IfModule mpm_prefork_module>
StartServers       2
MinSpareServers    25
MaxSpareServers    75
ServerLimit        40
MaxClients         1000
MaxRequestsPerChild 0
        MaxRequestWorkers        500
        MaxConnectionsPerChild   100
</IfModule>

真想不明白,到底是什么东西导致响应速度这么慢。谁能帮帮我?

您的配置文件令人困惑,您运行正在使用哪个版本的 Apache?

从 2.3.9

开始,

MaxRequestsPerChild 变为 MaxConnectionsPerChild 从 2.3.13

开始,

MaxClients 变为 MaxRequestWorkers

仍然支持旧名称,但您不应该同时使用这两种名称。

无论如何,我想主要问题是您的 ServerLimitMaxClients/ MaxRequestWorkers 值。

让我们假设每个 Apache 实例使用 25MB 的 RAM(您可以使用 top 来大致了解这一点,但作为一个大概的数字,我会 运行 使用 25MB)。你有 6GB 可以玩,但 mysql 需要一些,所以如果你给 Apache 3GB 3072/25 = 122.8 MaxClients

你的 MinSpareServers/MaxSpareServers 值也很高,我会把它们降低。

我会从这样的事情开始,然后修改 MaxClients / ServerLimit 的值(两者使用相同的值)以及 MaxRequestsPerChild:

<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxClients 100
ServerLimit 100
MaxRequestsPerChild 100
</IfModule>

然后重启Apache进行压力测试