曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5500|回复: 0
打印 上一主题 下一主题

PHP-FPM

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2011-11-3 19:31:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PHP-FPM 是 PHP
FastCGI  Process Manager 的缩写,即 PHP FastCGI 进程管理器。它实际
是为 PHP 打的一个 FastCGI 管理补丁,可以平滑变更 php.ini 配置而无需重启 php-cgi 。
它的最佳搭档是 N
ginx 服务器软件,特别是在页面负载比较重的情况下它的作用尤显突出。


它有下面几个特点:
basic SAPI status info (similar to Apache mod_status);


1. 具有平滑的 stop/start 的高级进程管理机制


2. 具有以不同的 uid/gid/chroot/environment, 可监听在不同的端口上,以及使用不同的 php.ini 来启动 worker 的能力;


3. 标准输入和标准错误日志功能;


4. 具有意外重启功能;


5. 具备加速上传机制支持;


6. “
slowlog” 功能;


7. 支持 PHP 函数
fastcgi_finish_request();


8. 支持静态或者动态的产生子进程;


9. 基本的 SAPI 状态信息(类似于 Apache 的
mod_status
)


10. 基于 php.ini 的配置访问(使用配置文件
php-fpm.conf
)


在修改了 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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-4-30 09:00 , Processed in 0.083305 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表