apache 进程学习

本文介绍了Apache的Prefork工作模式,该模式在启动时创建固定数量的空闲进程,用于处理请求。当请求超出空闲进程数时,Apache会创建新的进程。文章讲解了StartServers、MinSpareServers、MaxSpareServers、ServerLimit、MaxClients和MaxRequestsPerChild等配置参数的作用,以及如何根据服务器硬件调整这些参数以优化性能。
摘要由CSDN通过智能技术生成

今天看到apache 接受请求后 进程分配问题  记录一下 

apache 在启动时  会根据配置文件创建 空闲进程  并不是来一个请求 创建一个进程  而是  每次创建固定的进程;

假如为5  那么当apache启动时就会创建5个空闲的进程 当有一个请求时让让一个进程处理 这时候就只有4个空闲进程,

当同时有6个请求 时  apache 因为5个空闲进程全部在处理任务 就会再次创建5个进程 以此类推

其中 apache  根据配置文件可以 设置 最大空闲进程  和最小空闲进程  及 最大进程数 

每一个进程 处理完4000个请求 就会被释放   防止内存泄漏

假如  一个请求让进程1处理  处理完成 后  又一个请求 那么还是进程1处理 以此类推 进程1一直处理  不释放的话  就会有可能造成内存一直占有问题  ;

详细 文章 讲解  转载别人的

作者:酒窝
链接:https://www.zhihu.com/question/23786410/answer/153455460
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


prefork工作模式是linux下apache安装时候的默认工作模式,是使用最普遍的工作模式。为了能够简单的明白他的工作原理,下面是一个假设:有一台正在运行的apache服务器,用户A访问该apache的时候apache建立一个新的进程1处理用户A的请求。这时又有一个用户B访问该apache,apache又建立一个新的进程2处理用户B的请求。后来又有用户C,D,E访问该apache,apache又建立三个进程3,4,5处理他们的请求。如果每当一个新用户访问该apache,apache再建立一个新的进程处理用户的请求,是不是太慢了呢?所以apache的prefork模式在apache第一次启动的时候就建立5个进程,等待用户的连接请求,有一个用户访问,就有一个进程处理他的请求。那么如果有5个用户同时访问apache,apache第一次建立的5个进程全部用光了,所以apache就再从新在建立5个进程,等待下一批用户的请求。prefork模式会根据服务器的硬件情况,设定apache最多只能同时建立256个进程。再多的请求就只能等待前面的进程处理完毕在进行处理。假设完毕!上面的假设就是prefork模式的工作原理。但是上面假设中具体的数字不是定死的,而是通过prefork模式的配置来设置的。下面是http.conf中的配置信息。

*带井号的为注释部分prefork模式的几个重要的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值