apache是基于模块化设计的。
关于基础的服务,也采用了模块化的设计,但是这个模块是具有排他性的,同一时间只能有一个得到调用。
MPM模块(multi processing module) 多处理模块,是一个基础模块。原来在Unix系列操作系统上运行。之后移植到其他平台上去的时候,选用了基于本地操作系统的模块。
在Unix系列上,根据是否支持线程,又产生了prefor, worker和event三种模块。
prefork模块没有使用线程,是最基础的。
对于一个httpd服务器来说,为了提供好对外的服务,首先要启动一些进程,prefork模式下默认是5。最小空闲进程数量是5,最大空闲进程是10,最大进程(MaxRequestWorkers)是256.
从上图中可以看出在Ubuntu Linux 14.04LTS中,默认的配置。
prefork有5项。
设定了最多的进程是150个。
设定了每个进程可以服务的连接是无限的。如果把这个数字设定为不是0,那么可以避免可能的内存泄漏影响的内存数量。