zoukankan      html  css  js  c++  java
  • Windows下Apache的优化

    (1)首选查看apache的工作模式
    windows下的查看apache的工作模式命令:httpd -l
    如果列出mod_win32.c,则表示是 win32.c 工作方式。
    列出的全部内容如下所示:
    core.c
    mod_win32.c
    mpm_winnt.c
    http_core.c
    mod_so.c

    mpm_winnt.c是专门针对Windows
    NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程,
    不能像Linux下那样同时启动多个进程。
    mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。

    (2)mod_win32.c工作模式,对应的优化内容如下
    在httpd.conf文件中,加入以下内容
    <IfModule mpm_winnt.c>
      
    ThreadsPerChild 250
       MaxRequestsPerChild 5000
    </IfModule>

    ThreadsPerChild
    这个参数用于设置每个进程的线程数,
    子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰;
    另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。

    mpm_winnt上的默认值是64, 最大值是1920.
    这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。

    MaxRequestsPerChild
    该参数表示每个子进程能够处理的最大请求数,
    即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.
    官方参考手册中不建议设置为0, 主要基于两点考虑:
    (1)
    可以防止(偶然的)内存泄漏无限进行,从而耗尽内存;
    (2)
    给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

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

    这样一来降低了Apache的总体性能。

    另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:

        * # 首先需要加载mod_status模块
         LoadModule status_module
    modules/mod_status.so
        * # 然后设置访问的地址
         <Location
    /server-status>
            
    SetHandler server-status
             Order
    deny,allow
             Deny
    from all
             #
    如果限制某个IP访问则设置为 Allow from 192.168.0.1
             Allow
    from all
        
    </Location>

  • 相关阅读:
    软件工程第一次作业(2)
    软件工程第一次作业
    TR111与STUN
    定制自己的ubuntu 镜像文件 (remastersys, respin, USB live CD)
    上层认证的安全协议 __〈无线局域网安全务实:WPA与802.11i〉读书笔记
    接入控制层的安全协议 __〈无线局域网安全务实:WPA与802.11i〉读书笔记
    WEP 协议__<无线局域网安全务实:WPA与802.11i〉读书笔记
    Python re模块中search与match的区别
    python中如何使用shell命令, 及python 与shell 中的变量相互通信
    sed命令简介及在sed命令中使用变量的方法
  • 原文地址:https://www.cnblogs.com/lpfuture/p/4638451.html
Copyright © 2011-2022 走看看