Apache常用的两种工作模式介绍及配置优化,apache模式优化


Apache常用工作模式有两种,区别:

worker模式:

prefork模式:

cd /application/apache/conf  #切换到配置目录

vim httpd.conf  #编辑配置文件

/mpm  #搜索mpm

Include conf/extra/httpd-mpm.conf  #将这行注释取消

cd /application/apache/conf/extra/

vim httpd-mpm.conf

<IfModule mpm_worker_module>

    ServerLimit         1500

    StartServers          5

    MaxClients          1500

    MinSpareThreads      25

    MaxSpareThreads      75

    ThreadsPerChild      25

    MaxRequestsPerChild   5000

</IfModule>

/application/apache/bin/apachectl -t  #检查语法

/application/apache/bin/apachectl graceful  #优雅重启

 

Apache采用mpm_prefork模块,则该配置生效

<IfModule mpm_prefork_module>

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150

    MaxRequestsPerChild   0

</IfModule>

Apache采用mpm_worker模块,则该配置生效

<IfModule mpm_worker_module>

    StartServers          2

    MaxClients          150

    MinSpareThreads      25

    MaxSpareThreads      75

    ThreadsPerChild      25

    MaxRequestsPerChild   0

</IfModule>

 

prefork模式配置详解

<IfModule mpm_prefork_module>

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150

    MaxRequestsPerChild   0

</IfModule>

 

StartServers 指定服务器启动时建立的子进程数量,prefork默认为“5”。

 

MinSpareServers 指定空闲子进程的最小数量,默认为“5”。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。

 

MaxSpareServers 设置空闲子进程的最大数量,默认为“10”。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。

 

MaxClients 限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为“150”。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit。20000是ServerLimit这个参数的最大值。如果需要更大,则必须编译apache,此前都是不需要重新编译Apache。 生效前提:必须放在其他指令的前面

 

MaxRequestsPerChild 每个子进程在其生存期内允许伺服的最大请求数量,默认为“0”.到达MaxRequestsPerChild的限制后,子进程将会结束。如果 MaxRequestsPerChild为“0”,子进程将永远不会结束。

将MaxRequestsPerChild设置成非零值有两个好处:

1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

 

 

worker模式配置详解

<IfModule mpm_worker_module>

    StartServers          2

    MaxClients          150

    MinSpareThreads      25

    MaxSpareThreads      75

    ThreadsPerChild      25

    MaxRequestsPerChild   0

</IfModule>

 

StartServers 服务器启动时建立的子进程数,默认值是“2”。

 

MaxClients 允许同时伺服的最大接入请求数量(最大线程数量)。任何超过MaxClients限制的请求都将进入等候队列。默认值是“150” ,16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。

 

MinSpareThreads 最小空闲线程数,默认值是“25”。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

 

MaxSpareThreads 设置最大空闲线程数。默认值是“75”。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。 MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。

 

ThreadsPerChild 每个子进程建立的常驻的执行线程数。默认值是“25”。子进程在启动时建立这些线程后就不再建立新的线程了。

 

MaxRequestsPerChild 设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为“0”,子进程将永远不会结束。

将MaxRequestsPerChild设置成非零值有两个好处:

1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。 注意对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。

 

cd /application/apache/conf

vim httpd.conf  #增加以下内容就可以指定新的站点

<Directory "/application/apache2.2.31/htdocs">  #新的站点目录

    Options -Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

相关内容

    暂无相关文章