发新话题
打印

优化Apache服务器的重负荷

优化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



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题