1. event是MPM中比较适用于需要有大量持续连接(KeepAlive traffic)的情况。keepAlive的优点是,可以在同一个TCP连接中响应多次请求;
通过这种方式,可以使一个包含大量图片的HTML的文档提速1倍。配置的方法比较简单只需要在配置文件中设置KeepAlive为On,就可以启用KeepAlive。
2. prefork实现了一个非线程的MPM,主要的特点是:请求访问的速度不是很快,但是很稳定。它能够隔离每个请求,所以如果某个请求出现故障,不会影响其它的请求。
prefork是由一个主进程,实现派生出一些子进程,如果有访问的请求,客服端不用等待服务器产成子进程的时间所花的时间,还有prefork设置MaxClients数值要设置的恰当,当访问高峰期时,能发挥很大作用,当然不是MaxClients的设的数值越大越好,MaxClients设置的越大,会增加Apache所需要的内存,如果apache所需要的内存超过物理内存的大小,就会出现因apache宕机的可能。(能兼容apache1.3x版本)
3. worker是Apache2版本新开发的MPM,速度比起prefork要快很多,而且,由于使用多线程进行访问处理,所以能够处理相对海量的请求,系统的占用也要小于基于进程的服务器,同事,worker也使用了多进程,再有每个进程生成多个线程,这样服务器的稳定性要更好一些。
与prefork的相似之处,worker也是有一个单独的控制进程来负责子进程的建立,并事先派生一些子进程在那里等候。
如果需要更好的伸缩性,可以使用worker或event;如果需要更好的兼容性和稳定性(比较适用于一些比较旧的软件),就使用prefork。