apache服务器中进程和线程的使用

本文介绍了Apache服务器中的两种主要多处理模块(MPM):prefork和worker。prefork基于进程,适用于Linux/Unix环境,通过调整StartServers、MinSpareServers等参数来优化服务器性能。worker模块则基于线程,同样提供了丰富的配置选项如StartServers、MaxClients等,以满足高并发需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apache服务器中进程和线程的使用

http://blog.youkuaiyun.com/mayabin/article/details/1042642


apache功能强大,应用十分广泛。

为了使不同平台的apache都能得到优化,apache支持MPM模块。

linux/unix下的好的2个模块分别为prefork和worker。

最初设计unix的时候,并没有线程这个概念,所以无论系统内核还是应用软件,都不支持线程的应用。最小的作业单位是进程。

windows是一个完全支持线程的操作系统。线程比进程更小,能提高系统效率,减少系统开支。

现在无论是linux还是freebsd,都在积极改进,在内核中加入线程的支持。

apache本身即支持线程也支持进程。它怎么实现的呢?就是用MPM。

prefork模块:基于进程的web服务器

默认配置段如下: 
 
StartServers 5 
MinSpareServers 5 
MaxSpareServers 10 
MaxClients 150 
MaxRequestsPerChild 0 

prefork的工作原理是,由主控制进程生成“StartServers”个子进程,当空闲进程小于MinSpareServers时,系统生成一个又一个进程,直到进程数达到MaxSpareThreads;而MaxClients设置允许的最大客户连接数。每个子进程处理服务请求次数由MaxRequestPerChild定义。 缺省的设置值为0,即响应无限此请求。 

worker模块:基于线程程的web服务器

默认配置如下: 
 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 

worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置允许的最大线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。每个子线程处理服务请求次数由MaxRequestPerChild定义。 缺省的设置值为0,即响应无限此请求。

posted @ 2017-11-22 12:05 Newman·Li 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值