我已经购买了一个vps来从共享主机转移我的后端。我已经安装了apache2,php,mysql服务器。我的vps配置:
当我提出测试请求时,一切都以高速运行,我在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>
我真的不明白,什么事情可能是如此低的响应速度的原因。任何人都可以帮助我吗?
答案 0 :(得分:0)
您的配置文件令人困惑,您正在运行哪个版本的Apache?
截至2.3.9, MaxRequestsPerChild
成为MaxConnectionsPerChild
MaxClients
成为MaxRequestWorkers
仍旧支持旧名称,但您不应该同时使用这两个名称。
无论如何,我猜主要问题是您的ServerLimit
和MaxClients
/ 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并对其进行压力测试。