课程评价 (0)

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

学员评价

暂无精选评价
2分钟

06 worker

复用的多进程I/O模型,多进程多线程,IIS使用此模型

一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应

一个请求,并发响应请求:m*n

优点:占据更少的内存,高并发下表现更优秀。

缺点:必须考虑线程安全的问题,因为多个子线程是共享父进程的内存地址的。

如果使用keep-alive的长连接方式,某个线程会一直被占据,也许中间几乎没

有请求,需要一直等待到超时才会被释放。如果过多的线程,被这样占据,也会

导致在高并发场景下的无服务线程可用。(该问题在prefork模式下,同样会发生)

worker的默认配置:

<IfModule worker.c>

StartServers 4

MaxClients 300

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0 无限制

</IfModule>