为什么PHP不适合做高并发场景Web业务

php-fpm中master与worker工作方式; master 负责php-cgi环境以及资源的初始化,一条请求过来,
直接通过worker的accept进行监听,接收,处理,返回。
在php-fpm的场景下,一个Web请求一个worker线程, 用完线程的资源就销毁了。
并发的瓶颈在io模型,fpm是典型的没有复用的多进程模型; 也就是相对于进程而言,他能处理的请求是串行的,他是借助多进程来实现并行处理的能力。
即,开了50个fpm的worker,就有50的并行能力。如果要提高并行能力,只能打开更多的进程,但是打开更多的进程即意味着os需要有更多的资源去调度这些进程。 那就会陷入一个怪圈, 我想提高并发请求量,就必须开更多进程,但是浪费了更多的资源去调度进程,但是机器的性能是有限的,把资源浪费在调度上,反而没有资源处理业务。
【为什么PHP不适合做高并发场景Web业务】所以,php-fpm的工作模型才是问题。

    推荐阅读