1.1 传统php-fpm工作模式的问题
最后更新于:2022-03-31 23:46:43
# 1.1 传统php-fpm工作模式的问题
## php-fpm
- Fastcgi进程管理器,实现fastcgi协议
- 同步阻塞IO进程模型
- 请求结束后释放所有资源和内存
- 并发受限于进程数
- PHP框架初始化占用大量的计算资源
## php-fpm工作模式的问题
![php-fpm工作模式](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/3b817cd78cddf3adb50129d98a36663f_682x311.png)
- nginx基于epoll事件模型,一个worker同时可处理多个请求
- fpm-worker在同一时刻可处理一个请求
- master进程只负责处理worker进程的监控、日志等
- 用户端请求由elb解析,再经过nginx解析
- fpm-worker每次处理请求前需要重新初始化mvc框架,然后再释放资源
- 高并发请求时,fpm-worker不够用,nginx直接响应502
- fpm-worker进程间切换消耗大(如某线上业务在4核8G内存服务器实质可利用16个进程)