• apache的几个重要参数

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • Apache的几个重要参数

    Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。

    Prefork MPM 、 Worker MPM 等。

    资料见:

    三种MPM介绍   http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html

    window下Apache的MPM   http://gkecenter.blog.163.com/blog/static/181380305201272734249211/

    首先要确定apache采用的是何种MPM,在unix和window下的检测方法不同,window下 httpd -l 即可。

     

      (这是我本地的apache)

    然后在相应配置文件中找到相应的代码段。

    查看缺省生成的 httpd.conf 配置文件或者httpd-mpm.conf 文件,会发现里面包含如下的配置段:

    prefork MPM

    # prefork MPM

    # StartServers: number of server processes to start

    # MinSpareServers: minimum number of server processes which are kept spare

    # MaxSpareServers: maximum number of server processes which are kept spare

    # MaxClients: maximum number of server processes allowed to start

    # MaxRequestsPerChild: maximum number of requests a server process serves

    <IfModule mpm_prefork_module>

        StartServers          5

        MinSpareServers       5

        MaxSpareServers      10

        MaxClients          150

        MaxRequestsPerChild   0

    </IfModule>

    WinNT MPM

    # WinNT MPM

    # ThreadsPerChild: constant number of worker threads in the server process

    # MaxRequestsPerChild: maximum  number of requests a server process serves

    <IfModule mpm_winnt_module>

        ThreadsPerChild      150

        MaxRequestsPerChild    0

    </IfModule>

     

    参数解释

     

    # ThreadsPerChild: constant number of worker threads in the server process

    # MaxRequestsPerChild: maximum  number of requests a server process serves

    mpm_winnt主要通过 ThreadsPerChild 和 MaxRequestsPerChild 两个参数来优化Apache,下面详细来说明一下。
    ThreadsPerChild
    这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。
    mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。 

    MaxRequestsPerChild 

    这里MaxRequestsPerChild设置的是每个子进程可以处理的请求数。每个子进程在处理了MaxRequestsPerChild个请求后将自动销毁。

    0意味着无限,即子进程永不销毁。虽然缺省设为0可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处:

    1. 可防止意外的内存卸漏;
    2. 在服务器负载下降的时侯会自动减少子进程数。

     

    因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:
    Process exiting because it reached MaxRequestsPerChild. Signaling the parent
    这样一来降低了Apache的总体性能。 

    参考资料 http://gkecenter.blog.163.com/blog/static/181380305201272734249211/

    • 标签:
    • 进程
    • number
    • server
    • 设置
    • apache
    • 参数
    • threadsperchild
    • 处理
    • maxrequestsperchild
    • mpm
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部