歡迎您光臨本站 註冊首頁

apache性能問題

←手機掃碼閱讀     火星人 @ 2014-03-05 , reply:0

apache性能問題

Linux  2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux

內存4G,
4CPU
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 10
cpu MHz         : 3001.532
cache size      : 2048 KB

apache 2.2,worker模式

<IfModule mpm_worker_module>
    StartServers         5
    MaxClients         700
    MinSpareThreads     25
    MaxSpareThreads      50
    ServerLimit         15
    ThreadsPerChild    50
    MaxRequestsPerChild   0
</IfModule>

配置里,我設定的最大進程數為15,apache能夠維持的很好,在夜間,用戶數比較多,工作進程長時間維持在15個當用戶數進一步猛增后,進程數開始失控,最多時達到25個,最大連接數也沒有任何效果!


原來還遇到一種情況,當時配置是這樣:
<IfModule mpm_worker_module>
    StartServers         5
    MaxClients         5000
    MinSpareThreads     45
    MaxSpareThreads      100
    ServerLimit         150
    ThreadsPerChild    50
    MaxRequestsPerChild   0
</IfModule>

當用戶數比較多時,進程數達到150多個,這個時候,網路流量沒有了,進程好像是不工作了,長時間處於停滯狀態,手工強行重啟才能解決問題.

請高手指點迷津!謝謝!
《解決方案》

總感覺worker模式用的問題挺多,關注一下
《解決方案》

另外補充一下:

當用戶數比較多時,進程數達到150多個,這個時候,網路流量沒有了,進程好像是不工作了,長時間處於停滯狀態,手工強行重啟才能解決問題.

--------------------------------------------------
當時系統的cpu被耗完
《解決方案》

單個進程的內存佔了多少?
《解決方案》

回復 4樓 wigeboy 的帖子

apache死掉的哪次,忘了把內存消耗的情況記錄下來,據平時觀察,內存應該不是問題.
因為常駐內存基本上都只有幾M
《解決方案》

ThreadsPerChild 還是建議用25吧。多了可能導致不穩定
《解決方案》

回復 6樓 suek 的帖子

我就是怕ThreadsPerChild設置太小會增大系統開銷呀
《解決方案》

我倒是覺得在MaxClients參數保持5000不變的情況下
ServerLimit   參數降低      
ThreadsPerChild    稍微提高,整體性能會好一點,不知道我的意見對不對?
《解決方案》

回復 8樓 zhangweibo 的帖子

我也是這麼認為的,呵呵,linux中進程增加,必然會增大系統開銷,而同一進程中的線程增大,只會增大線程部分的開銷,進程中的內存是共享的,只不過存在共享變數互斥的問題,但是我認為,HTTP請求的響應速度沒必要哪么高,所以互斥的影響是可以忍受的,而在文件緩存的利用上就減少了不小的開銷!

[火星人 ] apache性能問題已經有78次圍觀

http://coctec.com/docs/service/show-post-41993.html