Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。
主要有两种:Prefork和worker
通过 /usr/local/apache/bin/apachectl -l 命令来查看
看显示的模块中是否包含上面两种关键字,那就是编译的时候使用了那种方式。每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块。
这里主要讲prefork方式。
在apache的httpd.conf文件中打开包含httpd-mpm.conf
编辑httpd-mpm.conf
找到
<IfModule mpm_prefork_module>
ServerLimit 2000
StartServers 5 //服务器进程开始数量
MinSpareServers 25 //最小服务器进程数量
MaxSpareServers 50 //最大服务器进程数量
MaxClients 2000 //最大客户端
MaxRequestsPerChild 102400 //最大请求进程数
</IfModule>