Vps反应迟钝

时间:2017-12-02 10:19:33

标签: php apache2 vps

我已经购买了一个vps来从共享主机转移我的后端。我已经安装了apache2,php,mysql服务器。我的vps配置:

  • ram:6 gb
  • cpu:6核心
  • ssd:150 gb
  • 端口:1 Gbps
  • os:Ubuntu 16.04

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

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

我的apache配置是:

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

我真的不明白,什么事情可能是如此低的响应速度的原因。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您的配置文件令人困惑,您正在运行哪个版本的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并对其进行压力测试。