Apache在一天兩萬個請求確實不大,但如果在高峰時期出現,而晚間或其它時間沒有,呈正態分布,且均是需要時間的下載服務,那負載還是很大的。
Apache允許為請求開的最大進程數是256,MaxClients的限制是256.如果用戶多了,用戶就只能看到Waitingforreply....然后等到下一個可用進程的出現。這個最大數,是Apache的程序決定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到:
以下為引用的內容:
#ifndefHARD_SERVER_LIMIT
#ifdefWIN32
#defineHARD_SERVER_LIMIT1024
#else
#defineHARD_SERVER_LIMIT256
#endif
#endif
你可以把它調到1024,然后再編譯你的系統。記得在httpd.conf里也要更改相應配置,缺省好象是150。就下面的機器來說,調到512頂死了,如果再高,系統受不了。
另外,一些系統也限制了一個用戶的最大進程數。你可以用ulimit-u來看。Linux一般是256。因此你要真想讓Apache超過這個數,就得調整這個參數:
ulimit-uunlimited
這個參數要在Apache運行之前修改,因此建議加到apachectl里:
以下為引用的內容:
case$ARGin
start)
if[$RUNNING-eq1];then
echo"$0$ARG:httpd(pid$PID)alreadyrunning"
continue
改成
case$ARGin
start)
ulimit-uunlimited
if[$RUNNING-eq1];then
echo"$0$ARG:httpd(pid$PID)alreadyrunning"
continue