|
PHP-FPM 是 PHP FastCGI Process Manager 的缩写,即 PHP FastCGI 进程管理器。它实际 |
是为 PHP 打的一个 FastCGI 管理补丁,可以平滑变更 php.ini 配置而无需重启 php-cgi 。 |
ginx 服务器软件,特别是在页面负载比较重的情况下它的作用尤显突出。 |
basic SAPI status info (similar to Apache mod_status); |
1. 具有平滑的 stop/start 的高级进程管理机制; |
2. 具有以不同的 uid/gid/chroot/environment, 可监听在不同的端口上,以及使用不同的 php.ini 来启动 worker 的能力; |
fastcgi_finish_request();
9. 基本的 SAPI 状态信息(类似于 Apache 的 |
10. 基于 php.ini 的配置访问(使用配置文件 |
在修改了 php-fpm.conf (Linux) 后,只需要执行 |
php-fpm reload 就可以完成配置的加载。 |
php-fpm中的进程管理
在PHP5.3.X中的php-fpm,配置文件 php-fpm.conf 对于进程管理有两种方法,一种是静态(static),一种是动态(dynamic)。
如果设置成 static,进程数始终都是 pm.max_children 指定的数量。
如果设置成 dynamic,则进程数是动态的,最开始是 pm.start_servers 指定的数量,如果请求较多,则会自动增加,保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理,保证进程数不多于 pm.max_spare_servers。
当php-fpm启动后,一个php-fpm进程处理过一些请求后,有些内存是释放不掉的,占用的内存将达到20M-30M不等。
对于内存大的服务器(比如说4G)来说,指定静态的 max_children 后就不需要再进行额外的进程数目控制。比如我们指定为100个,那么php-fpm耗费的内存就能控制在大概2G,剩余的2G内存可以处理别的任务。
如果内存小(比如1G),那么指定静态的进程数量,可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,有利于服务器的稳定,运行畅通。
分布式 FastCGI 架构图:
关于 FastCGI 的更多信息可访问官方网站:www.fastcgi.com |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|