PHP-FPM与Swoole在性能、稳定性、扩展性等方面有哪些显著差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1111个文字,预计阅读时间需要5分钟。
最近几天看到几篇关于swoole的文章,今天也来凑个热闹。水平有限,细节理解可能不到位,欢迎各位专家帮忙补充、纠正。
PHP-FPM早期版本中的PHP并没有内置的WEB服务器,而是提供了SAP(Server API)。
前几天看见有几篇讲 swoole 的文章,今天我也来凑个热闹。水平有限,细节理解可能不到位,欢迎大家帮我补充、纠正。PHP-FPM
早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 SAPI(Server API)给第三方做对接。现在非常流行的 php-fpm 就是通过 FastCGI 协议来处理 PHP 与第三方 WEB 服务器之间的通信。比如 Nginx + php-fpm 的组合,这种方式运行的 fpm 是 Master/Worker 模式,启动一个 Master 进程监听来自 Nginx 的请求,再 fork 多个 Worker 进程处理请求。每个 Worker 进程只能处理一个请求,单一进程的生命周期大体如下:
1.初始化模块。
2.初始化请求。此处请求是请求 PHP 执行代码的意思,并非 HTTP 的请求。
3.执行 PHP 脚本。
4.结束请求。
5.关闭模块。
多进程模型是依赖进程数来解决并发问题,一个进程只能处理一个连接,当启动大量进程,进程调度消耗可能占 CPU 的百分之几十甚至 100%,比如 C10K 问题,多进程模型就力不从心了。
本文共计1111个文字,预计阅读时间需要5分钟。
最近几天看到几篇关于swoole的文章,今天也来凑个热闹。水平有限,细节理解可能不到位,欢迎各位专家帮忙补充、纠正。
PHP-FPM早期版本中的PHP并没有内置的WEB服务器,而是提供了SAP(Server API)。
前几天看见有几篇讲 swoole 的文章,今天我也来凑个热闹。水平有限,细节理解可能不到位,欢迎大家帮我补充、纠正。PHP-FPM
早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 SAPI(Server API)给第三方做对接。现在非常流行的 php-fpm 就是通过 FastCGI 协议来处理 PHP 与第三方 WEB 服务器之间的通信。比如 Nginx + php-fpm 的组合,这种方式运行的 fpm 是 Master/Worker 模式,启动一个 Master 进程监听来自 Nginx 的请求,再 fork 多个 Worker 进程处理请求。每个 Worker 进程只能处理一个请求,单一进程的生命周期大体如下:
1.初始化模块。
2.初始化请求。此处请求是请求 PHP 执行代码的意思,并非 HTTP 的请求。
3.执行 PHP 脚本。
4.结束请求。
5.关闭模块。
多进程模型是依赖进程数来解决并发问题,一个进程只能处理一个连接,当启动大量进程,进程调度消耗可能占 CPU 的百分之几十甚至 100%,比如 C10K 问题,多进程模型就力不从心了。

