优化Apache服务器的重负荷
Apache在一天两万个请求确实不大,但如果在高峰时期出现,而晚间或其它时间没有,呈正态分布,且均是需要时间的下载服务,那负载还是很大的。 , f( F3 o3 p' T
: s# S$ p- Z/ b x Apache允许为请求开的最大进程数是256,MaxClients的限制是256.如果用户多了,用户就只能看到Waiting for reply....然后等到下一个可用进程的出现。这个最大数,是Apache的程序决定的--它的NT版可以有1024,但Unix版只有256,你可以在src/include/httpd.h中看到: * C/ W5 |! Z" P# [/ [
8 a, I$ x0 u1 r$ K& T f u #ifndef HARD_SERVER_LIMIT
# T! ~" B/ f$ h3 ]9 }" Y #ifdef WIN32 5 m! q* p/ x9 l: D; o% A5 s
#define HARD_SERVER_LIMIT 1024
; }* B' X" k& ]; d+ o: H #else
. L M+ J2 I6 M! T% t4 T #define HARD_SERVER_LIMIT 256
4 h# o% e, L) j' a7 j4 m+ N #endif
9 p& m5 D, f6 k3 A0 [- @( b. g #endif
, N% J$ a3 J% q+ m; C8 L: g! f k& c2 E0 s1 k. f5 V
你可以把它调到1024,然后再编译你的系统。记得在httpd.conf里也要更改相应配置,缺省好象是150。就下面的机器来说,调到512顶死了,如果再高,系统受不了。
4 L; N }' b4 x8 Y+ Y/ }2 A- P9 F* r; Z5 q: p/ g& M
另外,一些系统也限制了一个用户的最大进程数。你可以用ulimit -u 来看。Linux一般是256。因此你要真想让Apache超过这个数,就得调整 这个参数: - f8 V' N1 v! i
5 | Q$ K7 C+ ~0 Z( h7 q ulimit -u unlimited - j4 _8 n i/ n! c
- X' c7 H& F R- \; S, D3 `/ J
这个参数要在Apache运行之前修改,因此建议加到apachectl里: * P( l6 l( i7 D! Q
2 z+ i y2 s- G9 A" `- S case $ARG in
: ^& w/ [, ]* q* l4 B0 Q+ | start)
7 o, n3 a2 {/ Q5 e1 w0 R ~ if [ $RUNNING -eq 1 ]; then ) e8 h- G; @- D3 ^
echo "$0 $ARG: httpd (pid $PID) already running" ; c' R9 U8 H0 j8 g% L+ y4 g0 v# `
continue
+ G4 b8 L6 e, { 改成
0 Q& q$ U) y' q( f9 e9 A5 l case $ARG in ) l: ^! |) b6 o1 U8 x) y# f3 ^' H# N3 |
start)
+ {4 G) a A1 n+ V9 E R ulimit -u unlimited / h$ _; t" a s
if [ $RUNNING -eq 1 ]; then , ^. d. p, g7 c1 i6 [1 d: m
echo "$0 $ARG: httpd (pid $PID) already running" 2 I E' x; q& j/ W8 W
continue
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹