MPM:Multipath processing Modules (多路处理模块) (1)prefork:多进程模型,每个进程响应一个请求; 一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理; n个子进程:每个子进程处理一个请求; 工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求;最大空闲和最小空闲; (2)worker:多进程多线程模型,每线程处理一个用户请求; 一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理; 多个子进程:每个子进程负责生成多个线程; 每个线程:负责响应用户请求; 并发响应数量:m*n m:子进程数量 n:每个子进程所能创建的最大线程数量; (3)event:事件驱动模型,多进程模型,每个进程响应多个请求; 一个主进程 :负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理; 子进程:基于事件驱动机制直接响应多个请求; httpd-2.2: 仍为测试使用模型; httpd-2.4:event可生产环境中使用; httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;CentOS 6的rpm包为此专门提供了三个应用程序文件,httpd(prefork), httpd.worker, httpd.event,分别用于实现对不同的MPM机制的支持;确认现在使用的是哪下程序文件的方法: ps aux | grep httpd 默认使用的为/usr/sbin/httpd,其为prefork的MPM模块 ; 查看httpd程序的模块列表: 查看静态编译的模块: # httpd -l 查看静态编译及动态编译的模块: # httpd -M 更换使用httpd程序,以支持其它MPM机制; vim /etc/sysconfig/httpd HTTPD=/usr/sbin/httpd.{worker,event} 注意:重启服务进程方可生效 MPM配置:/etc/httpd/conf/httpd.conf prefork的配置 <IfModule prefork.c> StartServers 8 # 服务器刚启动是就启动多少个空闲进程 MinSpareServers 5 # 最小空闲进程数 MaxSpareServers 20 # 最大空闲进程数 ServerLimit 256 # 最大启动多少个进程 MaxClients 256 # 最大启动多少个进程响应客户端请求。最大并发数 MaxRequestsPerChild 4000 # 每个进程最多可以处理多少个请求,达到4000个就销毁一个进程 </IfModule> worker的配置: <IfModule worker.c> StartServers 4 # 服务器刚启动是就启动多少个空闲进程 MaxClients 300 # 最大启动多少个进程响应客户端请求。最大并发数 MinSpareThreads 25 # 最小空闲进程数 MaxSpareThreads 75 # 最大空闲进程数 ThreadsPerChild 25 # 每个进程最大可生成多少个线程 MaxRequestsPerChild 0 # 进程处理的请求数量不受限制 </IfModule> PV:Page View:日点击量,有多少个页面被点击
本文转自 转身撞墙角 51CTO博客,原文链接:http://blog.51cto.com/chentianwang/1874370