APACHE体系结构

APACHE体系结构
2011-02-26 10:42

转自http://blogold.chinaunix.net/u/14673/showart_297030.html

http://it.chinawin.net/internet/article-1018.html

APACHE体系结构


APACHE运行的过程一共有2个阶段:start-up和operational.
start-up:以root身份,单进程,单线程的运行,负责解析配置文件,加载模块,初始化系统资源(比如日志文件等)。
注:配置代码一共读了2次(第一次,保证配置是正确的,APACHE能够理解。第二次,处理配置,开始operational阶段)。
operational:以没有特权的用户多进程和(或)多线程的运行。原来的作为"master",管理这些worker children.
MPM(Multi-Processing Module):start-up完成以后,交给MPM,MPM提供APACHE和操作系统的接口,来优化和保证安全。

重要结构:
apr_pool_t (APR内存管理的核心)
ap_conf_vector_t (每个模块的配置内容)
request_rec (请求,如HTTP)
server_rec (每个virtual host)
conn_rec (连接,如TCP)
process_rec (每个server的进程,操作系统级别)

 

apache不同的版本,软件体系结构差别还是比较大,一种是进程式处理connection request,另外一种是线程式处理connection request.进程式处理如下图所示:

如果连接比较多,parent进程会fork很多的

child子进程来处理connection,每一个子进程一次只能处理一个连接,并发度低,系统吞吐量不高。还有一个比较大的缺点是占用内存多。

线程式处理软件结构如下图所示:



在这种结构里,子进程仍然为父进程fork,但子进程里会有多个线程(thread),每一个线程可以处理一个连接请求,该进程内的线程共享进程的内存地址空间,CPU对线程进行调度,提高了CPU的利用率,由于减少了child进程的数据,也减少了apache的内存消耗;由于采用线程处理连接请求的机制,apache同时能够处理的连接请求大大增加。通常对apache设置如下的参数:

StartServers         5
ServerLimit          30
MaxClients           2000
MinSpareThreads      75
MaxSpareThreads      200
ThreadsPerChild      80
对于这些参数什么含义,大家可以网上google一下。

对于apache,也可以根据自身需要,改写相应的moudle,比如说流量控制,安全控制,你可以试一下...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值