如何设置httpd-mpm.conf 的参数呢

回复 收藏
首先确定apache是使用哪种工作模式,是prefork模式还是worker模式,查看方法
apachectl -l  
查看后显示
Compiled in modules:
  core.c
  mod_authn_file.c
  mod_authn_default.c
  mod_authz_host.c
  mod_authz_groupfile.c
  mod_authz_user.c
  mod_authz_default.c
  mod_auth_basic.c
  mod_include.c
  mod_filter.c
  mod_log_config.c
  mod_env.c
  mod_setenvif.c
  prefork.c  
http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_cgi.c
  mod_negotiation.c
  mod_dir.c
  mod_actions.c
  mod_alias.c
  mod_so.c

看到红色加粗部分,显示 prefork ,所以是prefork模式。

那么httpd-mpm.conf 中就该配置 # prefork MPM 部分了,prefork模式的默认配置是:

                StartServers                      5
                MinSpareServers                   5
                MaxSpareServers                  10
                MaxClients                      150
                MaxRequestsPerChild               0


如何去评估这些参数呢?先来看看各个参数的含义。
2011-04-02 10:30 举报
已邀请:
0

阿铭 管理员

赞同来自:

prefork 模式的工作原理大概为:
控制进程在最初建立StartServers个子进程后, 为了满足MinSpareServers设置的需要,创建一个进程,等待一秒钟,继续创建第二个,等待一秒钟,继而创建四个,如此按指数级增加创建的进程 数,最多达到每秒32个,直到满足MinSpareServers设置的值为止,这也就是预派生(prefork)的由来。这种模式可以使得不必在请求到 来时再产生新的进程,从而减小了系统开销以增加性能。

MaxSpareServers 设置了最大的空闲进程数,如果空闲进程数大于这个值,Apache会自动kill某些多余进程。这个值一般不要设的过大,但如果设的比 MinSpareServers小,Apache会自动把它调整为MinSpareServers+1。如果站点负载较大的话,可考虑同时加大 MinSpareServers和MaxSpareServers。
MaxRequestsPerChild设置的是每个子进程可以 处理的请求数。每个子进程在处理了MaxRequestsPerChild个请求后将自动销毁。0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每 个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:
1. 可防止意外的内存卸漏;
2. 在服务器负载下降的时侯会自动减少子进程数。
因此,可根据服务器的负载来调整这个值,如果非零的话,笔者认为10000左右是比较合适的。事实上这个值对Apache的性能影响不是很大。
MaxClients 是这些指令中最为重要的一个,它设定的就是Apache可以同时处理的请求,这是对Apache性能影响最大的参数.在我个人看来,缺省的150是远远不 够的,如果请求总数已达到这个值(可通过ps –ef|grep httpd|wc –l来确认),那么下面的请求就要排队,直到某个已处理请求完毕。这就是为什么系统资源还剩下很多,而http访问却很慢的主要原因。系统管理员可以根据硬件配置和负载情况来动态调整这个值,虽然理论上这个值越大,可以处理的请求就越多,但实际上,平时根据咱们用的服务器(比如戴尔2950)配置,这个参数设置到500已经足够。注意的是,在Apache1版本中,这个参数是有限制的,不能超过256,即使你设置大于256也不管用,除非更改源代码重新编译。在Apache2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。

下面是笔者的prefork配置段。

    ServerLimit        2048
    StartServers        10
    MinSpareServers       10
    MaxSpareServers      15
    MaxClients         500
    MaxRequestsPerChild  10000
0

無名世界

赞同来自:

赞,这个写得不错。
0

gjc159357

赞同来自:

mark
0

栋佐

赞同来自:

收藏。
0

wanmei

赞同来自:

了解

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: