我正在運行一個交通密集站點(每天10萬次)。在高峯時間(1500+在線活動)網站得到大幅度減速並增加頁面加載時間。 (圖片)Apache2 - 針對非常高流量網站的ServerLimit,MaxClients,MaxRequestsPerChild的最佳值
我們在同一臺服務器上使用前端+ mysql數據庫。留下足夠的未使用資源。
平均負載:1.47,1.63,1.73 HTOP:http://grabilla.com/02b13-02a8961d-bd7e-404c-9873-06e57bb7eab1.png
服務器配置: E3 1230(4×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%的使用率。我知道這不是數據庫瓶頸,因爲靜態頁面在繁忙時間也需要很長時間才能加載。
任何提示,以優化這些值將不勝感激,謝謝。
如果您試圖優化一段慢速代碼(儘管有人會說它更適合Code Review),但我可以看到這是如何編程的,但調整Apache配置值聽起來更像是服務器故障的問題。 – cjc343
它看起來像你可以通過做一些(相當)基本的網站優化,如設置過期頭,組合圖像精靈,和優化/縮小資源等顯着提高性能。在主頁上,我必須提出60多個請求。隨時由網站上的最大用戶數乘以,並且快速增加。此外,爲了上帝的愛,讓能活下去;不得不爲60個以上的請求打開一個新的連接是瘋狂的。 –
非常感謝您的建議。 –