Apache软件体系结构

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

进程式处理如下图所示:

Apache软件体系结构_第1张图片如果连接比较多,parent进程会fork很多的child子进程来处理connection,每一个子进程一次只能处理一个连接,并发度低,系统吞吐量不高。还有一个比较大的缺点是占用内存多。

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

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

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

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

你可能感兴趣的:(Apache软件体系结构)