Apache工作模式及对应配置修改,apache模式


apache 工作模式说明:

Apache针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。
Windows操作系统上默认的MPM模块是mpm_winnt,mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。

查看修改工作模式

使用命令:apachectl –l
修改的话:在configure时,可以通过指定参数,将工作模式设置为worker模式或prefork模式。
使用命令:./configure –with-mpm=worker

prefork模式

prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是Apache 1.3中采用的模式。prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。

worker模式

Worker模式的每个进程又能同时开启多个线程(配置ThreadsPerChild)进行请求处理。能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值

修改MPM模块配置

1.启用MPM模块配置文件
在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf的配置文件。该文件主要用于进行MPM模块的相关配置。不过,在默认情况下,Apache的MPM模块配置文件并没有启用。因此,我们需要在httpd.conf文件中启用该配置文件,如下所示:

Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")

2 . 修改MPM模块配置文件中的相关配置
修改http-mpm.conf文件

#由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。
<IfModule mpm_winnt_module>
ThreadsPerChild  2000 #默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
MaxRequestsPerChild 30000 #推荐设置:小=10000 中或大=20000~100000
</IfModule>

3.重启apache就好了

相关参数说明:

    StartServers  5 #apache启动时候默认开始的进程数
    MinSpareServers 5 #最小的闲置进程数
    MaxSpareServers 10 #最大的闲置进程数
    ServerLimit  256 #最大的进程总数(要结合MaxClients)
    MaxClients 256  #最大的进程总数
    MaxRequestsPerChild 4000 #每个进程处理的最多请求数(每个进程所处理过的请求累加得到的数),避免内存泄露
    ThreadsPerChild 2000 #每个worker进程可开启的线程数

相关内容

    暂无相关文章