Apache重负荷服务器应如何优化

发表于:2007-05-25来源:作者:点击数: 标签:
作者:pmnange 一天两万个请求确实不大,但如果在高峰时期出现,而晚间或其它时间没有,呈正态分布,且均是需要时间的下载服务,那负载还是很大的。 Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waitingforreply

作者: pmnange
  一天两万个请求确实不大,但如果在高峰时期出现,而晚间或其它时间没有,呈正态分布,且均是需要时间的下载服务,那负载还是很大的。   

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

 shenvo 回复于:2003-01-16 18:19:23
[quote:41918ca649="南非蜘蛛"]一天两万个请求确实不大,但如果在高峰时期出现,而晚间或其它时间没有,呈正态分布,且均是需要时间的下载服务,那负载还是很大的。 

continue[/quote:41918ca649]

问题:
限制多线程下载有何办法?
每天20000个请求是从日志里的来的结果吗?

 南非蜘蛛 回复于:2003-01-17 12:51:40
[quote:b10baad817="shenvo"]

问题:
限制多线程下载有何办法?
每天20000个请求是从日志里的来的结果吗?[/quote:b10baad817]
另一篇帖子已说明,请查看其它帖子

 郝君 回复于:2003-08-19 02:34:00
好东动

 方恨少 回复于:2003-08-28 13:52:56
这么旧了,过时了:)

原文转自:http://www.ltesting.net