为什么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的工作模型才是问题。
推荐阅读
- 为什么你的路演总会超时()
- 财商智慧课(六)
- 吃了早餐,反而容易饿(为什么?)
- 为什么越花钱的人越有钱,越舍不得花钱的人却越穷()
- dubbo基本认识
- thinkphp|thinkphp 3.2 如何调用第三方类库
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 为什么985/211的学生能胜任工作获得老板的青睐。
- 年轻人,干了孤独这杯酒
- 为什么孩子一定要学会可视化思维!