MaxClients 4000
MinSpareThreads 100
MaxSpareThreads 400
ThreadLimit 200
ThreadsPerChild 100
MaxRequestWorkers 400
MaxRequestsPerChild 100
</IfModule>
------------------------
# worker MPM配置:
-----------------------
<IfModule mpm_event_module>
StartServers 5
ServerLimit 5000
MaxClients 4000
MinSpareThreads 100
MaxSpareThreads 400
ThreadLimit 200
ThreadsPerChild 100
MaxRequestWorkers 400
MaxRequestsPerChild 100
</IfModule>
-----------------------
------------------------------------------------------
其中最重要的参数是 ThreadsPerChild和 MaxClients:
#ThreadsPerChild
每个子进程建立的线程数,子进程在启动时建立这些线程后就不再建立新的线程了
#MaxClients
允许同时伺服的最大接入请求数量(在worker下就是最大线程数量)
#ServerLimit:
对最大子进程数的上限,该值必须大于等于MaxClients/ThreadsPerChild
#ThreadLimit:
对ThreadsPerChild的上限,该值必须大于等于 ThreadsPerChild,如果将ThreadLimit设置成一个高出实际需要很多的ThreadsPerChild值,将会有过多的共享内存被 分配,应当和ThreadsPerChild可能达到的最大值保持一致.
#StartServers:
服务器启动时的服务进程数目,该值肯定小于等于ServerLimit
#MinSpareThreads和MaxSpareThreads:
通过新建或结束子进程的方式,将空闲线程的总数维持在这个范围内
#MaxRequestsPerChild:
用于控制服务器建立新进程和结束旧进程的频 率,其实是一个为了防止内存溢出的参数,每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将 会结束。对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
可以通过检查HTTPServer/logs/error_log日志,判断MaxClients是否需要增加,如果有报错,就说明apache自上次重启至今,曾经发生过达到MaxClients的情况:
4).关闭TRACE Method.
#vi /usr/local/apache2/conf/httpd.conf
-----------------------
TraceEnable off
-----------------------
5).实现service和chkconfig系统控制httpd开启关闭
# vi /etc/ld.so.conf.d/apache2.4.4.conf
-----------
/usr/local/apache2/lib
------------
# ldconfig
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
# vi /etc/init.d/httpd
在首行#!/bin/sh 下面添加:
----------------
#chkconfig:345 61 61
#description:Apache httpd








