课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
2分钟

05 prefork

多进程I/O模型,每个进程响应一个请求,默认模型

一个主进程:生成和回收n个子进程,创建套接字,不响应请求

多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先

生成多个空闲进程,等待请求,最大不超过1024个

优点:成熟稳定,兼容所有新老模块。同时,不需要担心线程安全的问题。(我们常用的mod_php,PHP

的拓展不需要支持线程安全)

缺点:一个进程相对占用更多的系统资源,消耗更多的内存。而且,它并不擅长处理高并发请求,在这种

场景下,它会将请求放进队列中,一直等到有可用进程,请求才会被处理。

prefork的默认配置:

<IfModule prefork.c>

StartServers 8 服务启动时,预先同时开启几个进程

MinSpareServers 5

MaxSpareServers 20

ServerLimit 256 最多进程数,最大20000

MaxClients 256 最大并发

MaxRequestsPerChild 4000 子进程最多能处理的请求数量。在处

理MaxRequestsPerChild 个请求之后,子进程将会被父进程终止,这

时候子进程占用的内存就会释放(为0时永远不释放)

</IfModule>