请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

php-fpm进程问题

nginx的master-worker多进程模型,请求是会被当作一个事件放入到队列中,worker进程会消耗这个队列处理请求,这样并发量就会更高,不会一个worker进程只处理一个请求。php-fpm也是采用的master-worker,从课程中看出,php-fpm似乎是一个进程同时只能处理一个请求。不知道理解上面存在错误吗?

正在回答

1回答

陈雷 2019-03-03 11:55:56

同学您好, 你提到的nginx的worker同时处理多个请求,是指的I/O多路复用吧?  比如在支持epoll的操作系统下,nginx用了epoll来同时处理多个请求。  是指的这个意思吧?

那么对于php-fpm同样也用了I/O多路复用,一个worker的fpm也可以同时处理多个请求,在支持poll的操作系统下使用的是poll,可以gdb -p pid  (其中pid是某一个worker角色的fpm的pid),在poll处打一个断点,如下:

https://img1.sycdn.imooc.com//szimg/5c7b50140001d8e125040274.jpg

同样也是可以同时处理多个请求的。 课程里面提到的意思是多个worker会通过抢锁获取一个请求进行处理。


1 回复 有任何疑惑可以回复我~
  • poll和select感觉差不多,为什么不采用epoll呢,好奇怪
    回复 有任何疑惑可以回复我~ 2019-06-27 09:57:35
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信