我正在经营一个交通密集的网站(每天100k)。在高峰时间(1500+在线活动)网站的速度显着减慢,页面加载时间也会增加。 (图像也是)
我们在同一台服务器上使用前端+ mysql数据库。有足够的未使用资源。
平均负载:1.47,1.63,1.73 htop:http://grabilla.com/02b13-02a8961d-bd7e-404c-9873-06e57bb7eab1.png
服务器配置: E3 1230(4 x 3.2Ghz)/ 16GB RAM / 1Gbps端口速度 centoOS 5.8
Apache配置:
Timeout 150
KeepAlive Off
MaxKeepAliveRequests 1000
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 450
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
高峰时段的CPU使用率绝不会超过2平均负载。 MySQL服务器当时的使用率也为7~15%。我知道这不是数据库瓶颈,因为静态页面在高峰时段也需要很长时间才能加载。
非常感谢优化这些价值观的任何提示,谢谢。
网址网址:http://goo.gl/XVPAA
答案 0 :(得分:10)
假设您使用带有prefork的linux:打开保持活动状态。如果您的流量不断增加,服务器数量会增加。降低你保持活着的时间,这样你就不会快速饱和你的连接并增加你对每个孩子的请求,所以服务器不会经常重启。你有很多RAM,所以尽量最大化你的RAM使用并减少你的CPU使用率。首先尝试这个:
Timeout 150
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 20
MinSpareServers 20
MaxSpareServers 30
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 10000
</IfModule>
还要编辑my.conf并增加缓存和缓冲区。