centos学习:探一探apache工作模式之prefork worker event

回顾:

如果使用的apachectl这个工具来运行,那么它的配置文件在
/usr/local/你的目录/conf/httpd.conf文件里

执行 ps -ef | grep httpd 
会发现默认出现四个进程。这是为什么?

Apache的启动方式有两种,一种是直接执行httpd这个可执行程序(但是不好控制,不推荐)
还有一种是使用apachectl (apache贴心管理小工具)
如果你启动的是/usr/local/xxxx/bin/apachectl,
那么 执行 apachectl -l (小写的l)
如果你和本课程是一样的配置,那么会出现
一条:
event.c 代表 event模式

三种工作模式 – prefork

apache 2.2默认的模式。没有线程的概念,是多进程模型,一个进程处理一个连接;稳定;响应快。其缺点是在连接数比较大时就非常消耗内存。
2.2中编译时不加–with-mpm=xxx 那么就是prefork
2.4中 则是 event工作模式

三种工作模式–worker

多进程多线程模型,一个进程有多个线程,每个线程处理一个连接。这种模式下开销更小,处理的请求更海量。
缺点是一旦某个线程出了问题,其所属进程也可能会死掉

三种工作模式–event
Worker模式的升级和加强版本.相对worker模式能够承受的了更高的并发负载。
event模式不能很好的支持https的访问

回到上节课我们的apache源码目录里
./configure –prefix=/usr/local/myapache –enable-MODULE=shared –with-mpm=prefork
重新生成makefile文件
再次make && make install

找到这一行
Include conf/extra/httpd-mpm.conf

这个额外加载的配置文件,就是对不同工作模式的一个配置。为了方便区分,所以会放到外面。当然你也可以直接拉过来放到里面


StartServers 5 //初始创建进程数
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0

StartServers //初始创建进程数
MaxSpareServers 最大空闲进程数,如果空闲进程数大于这个值,Apache会自动kill掉一些多余进程
MinSpareServers 最小空闲进程数
MaxRequestWorkers
最大接收的请求数,apache 2.3.1之前叫做MaxClients.
默认值256(250?).调大这个值要增加ServerLimit (最大为2万,要调这个值要改源码文件)
http://httpd.apache.org/docs/current/mod/mpm_common.html#serverlimit
MaxRequestsPerChild(2.4为MaxConnectionsPerChild)
每个子进程可处理的请求数。每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁
0为不限制

发布了65 篇原创文章 · 获赞 3 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/web_orange/article/details/74002311