2 Apache服务器 22 Apach工作聊 Apache处理模式: perfor 一个单独的控制进程(父进程)负责产生子进程,子进程用于监听请求井 MaxRequestworkers四个指令用于调节父进程如何产生子进程。 22pMh作通 产 使用了多进程和多线程尼合的模式 在高并发情况下,比e有更多可用进程,表现会更优秀一些 线程,如果某个线程出现异常,受影响的只是 Apache的一部分酸务,而不是整 个务 2 Apache服务器 22A Apache,处理模式: event event和 worker模式很像,最大的区别在于它解决了keep-ae场景下,线 线程因为被 keep-alie空挂 evet梗式中,会有一个专门的线程来管理这些 keep-alive类型的线程 有撸发请求类5 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2.Apache服务器 Apache处理模式:perfork 一个单独的控制进程(父进程)负责产生子进程,子进程用于监听请求并 作出应答。Apache试图保持一些备用的(spare)或是空闲子进程用于迎 接即将到来的请求,客户端不需要在得到服务前等候子进程的产生。 perfork下有StartServers、MinSpareServers、MaxSpareServers、 MaxRequestWorkers四个指令用于调节父进程如何产生子进程。 通常情况下Apache具有很强的自我调节能力,当需要处理的并发请求较高时, 服务器可能就需要增加MaxRequestWorkers的值。 StartServers:初始的工作进程数。 MinSpareServers:空闲子进程的最小数量。 MaxSpareServers:空闲子进程的最大数量。 MaxRequestWorkers:最大空闲线程数。 13 2.2Apache工作原理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2.Apache服务器 Apache处理模式:worker worker模式相对于perfork来说,使用了多进程和多线程混合的模式。 Worker模式预先分了几个子进程(数量比较少),然后每个子进程创建一些线 程,同时包括一个监听线程。每个请求过来,会被分配到一个线程来服务。因 为线程通常会共享父进程的内存空间,所以内存的占用会减少一些,线程处理 比起进程会更轻量。 worker模式在高并发情况下,比prefork有更多可用进程,表现会更优秀一些。 worker不完全使用多线程,引入多进程的原因是需要考虑稳定性,如果一个线 程出错,会导致父进程连同其它正常的子线程都出错,使用多个进程再加多个 线程,如果某个线程出现异常,受影响的只是Apache的一部分服务,而不是整 个服务。 14 2.2Apache工作原理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2.Apache服务器 Apache处理模式:event event和worker模式很像,最大的区别在于它解决了keep-alive场景下,线 程长期被占用而造成的资源浪费问题,如某个线程因为被keep-alive空挂 着等待,长时间没有请求,甚至等到超期。 event模式中,会有一个专门的线程来管理这些keep-alive类型的线程,当 有真实请求时,将请求传递给服务线程,执行完毕后,又允许它释放,这 样增强了高并发场景下的请求处理能力。 15 2.2Apache工作原理