4

我正在运行一个流量密集的站点(每天 100k)。在高峰时间(超过 1500 个在线活动)网站会急剧变慢并增加页面加载时间。(图片也是)

我们在同一台服务器上使用前端 + mysql 数据库。有足够的未使用资源。

平均负载:1.47、1.63、1.73 htop:http ://grabilla.com/02b13-02a8961d-bd7e-404c-9​​873-06e57bb7eab1.png

服务器配置:E3 1230 (4 x 3.2Ghz) / 16GB RAM / 1Gbps 端口速度 centoOS 5.8

阿帕奇配置:

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

4

1 回答 1

11

假设您使用带有 prefork 的 linux:打开 keep alive。如果您的流量不断增加,请增加服务器数量。降低你的存活时间,这样你就不会很快使你的连接饱和,并增加你每个孩子的请求,这样服务器就不会经常重启。你有很多内存,所以尽量最大化你的内存使用率并减少你的 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 并增加缓存和缓冲区。

于 2013-06-11T22:41:18.157 回答