Apache在一天兩萬(wàn)個(gè)請(qǐng)求確實(shí)不大,但如果在高峰時(shí)期出現(xiàn),而晚間或其它時(shí)間沒(méi)有,呈正態(tài)分布,且均是需要時(shí)間的服務(wù),那負(fù)載還是很大的。
Apache允許為請(qǐng)求開(kāi)的最大進(jìn)程數(shù)是256,MaxClients的限制是256.如果用戶多了,用戶就只能看到Waiting for reply....然后等到下一個(gè)可用進(jìn)程的出現(xiàn)。這個(gè)最大數(shù),是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
你可以把它調(diào)到1024,然后再編譯你的系統(tǒng)。記得在httpd.conf里也要更改相應(yīng)配置,缺省好象是150。就下面的機(jī)器來(lái)說(shuō),調(diào)到512頂死了,如果再高,系統(tǒng)受不了。
另外,一些系統(tǒng)也限制了一個(gè)用戶的最大進(jìn)程數(shù)。你可以用ulimit -u 來(lái)看。Linux一般是256。因此你要真想讓Apache超過(guò)這個(gè)數(shù),就得調(diào)整 這個(gè)參數(shù):
ulimit -u unlimited
這個(gè)參數(shù)要在Apache運(yùn)行之前修改,因此建議加到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