第十卷 優化Apache服務器的重負荷(1 / 1)

第十卷 優化Apache服務器的重負荷

Apache在一天兩萬個請求確實不大,但如果在高峰時期出現,而晚間或其它時間沒有,呈正態分布,且均是需要時間的下載服務,那負載還是很大的。

Apache允許為請求開的最大進程數是256,MaxClients的限製是256.如果用戶多了,用戶就隻能看到Waiting for reply....然後等到下一個可用進程的出現。這個最大數,是Apache的程序決定的--它的NT版可以有1024,但Unix版隻有256,你可以在src/include/httpd.h中看到:

#ifndef HARD_SERVER_LIMIT

#ifdef WIN32

#define HARD_SERVER_LIMIT 1024

#else

#define HARD_SERVER_LIMIT 256

#endif

#endif

你可以把它調到1024,然後再編譯你的係統。記得在httpd.conf裏也要更改相應配置,缺省好象是150。就下麵的機器來說,調到512頂死了,如果再高,係統受不了。

另外,一些係統也限製了一個用戶的最大進程數。你可以用ulimit -u 來看。Linux一般是256。因此你要真想讓Apache超過這個數,就得調整 這個參數:

ulimit -u unlimited

這個參數要在Apache運行之前修改,因此建議加到apachectl裏:

case $ARG in

start)

if [ $RUNNING -eq 1 ]; then

echo "$0 $ARG: httpd (pid $PID) already running"

continue

改成

case $ARG in

start)

ulimit -u unlimited

if [ $RUNNING -eq 1 ]; then

echo "$0 $ARG: httpd (pid $PID) already running"

continue