apache常用的prefork和worker模式

prefork模式(实现fork好子进程,等待请求)

使用多个子进程,每个子进程只有一个线程,每个进程在某个确定的时间维持一个连接

工作原理:控制进程最初建立若干个子进程,为了不在请求到来时再生成子进程,所以要根据需求不断的创建新的子进程,最大可以到达每秒32个知道满足需求位置

优点:效率高,稳定,安全。

缺点:和worker模式比消耗资源更多

worker模式

是线程与进程的结合,在worker模式下会有多个子进程,每个子进程又会有多个线程。每个线程在某个确定的时间只能维护一个连接

工作原理:由主进程生成若干个子进程,而每个子进程中又包含固定的线程数,各个线程独立处理请求,同样为了不在请求到来时再生成线程,在配置文件中设置了最大和最小空闲线程数及所有子进程中的线程总数,如果现有子进程中的线程总数不能满足并发及负载,控制进程将派生新的子进程

优点:内存占用比prefork模式低,适合高并发,高流量http服务

缺点:如果一个线程奔溃,整个进程就会连同其任何线程一起"死掉"由于线程共享内存空间,所以一个程式在运行时必须被系统识别为"每个线程都是安全的",服务稳定性不如prefork模式
坚持原创技术分享,您的支持将鼓励我继续创作!