首页 » VPS 知识 » 浏览内容

php-fpm的两种进程管理方式


2012-01-26 20:08:29 2,209 0 发表评论 字体: 作者:C.K.
标签: php-fpmVPS

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

php-fpm http://php-fpm.org/ 是一个 PHP FastCGI 进程管理器。FastCGI是一个可伸缩的,高速地在web server和脚本语言间交互的接口。FastCGI的主要优点是把动态语言和web server分离开来。这种技术允许把web server和动态语言运行在不同的主机上,以大规模扩展和改进安全性而不损失生产效率。
很多博主都是用nginx+php-fpm+mysql的组合方式,本文来谈一下php-fpm的两种进程管理方式。

php-fpm的配置文件里有五个参数是关于php-fpm进程管理的调整。

pm
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_children:

子进程的数量,pm 设置为 static 时表示创建的, pm 设置为 dynamic 时表示最大可创建的. 必须设置.

pm.start_servers:
设置启动时创建的子进程数目. 仅在 pm 设置为 dynamic 时使用. 默认值: min_spare_servers + (max_spare_servers – min_spare_servers) / 2.

pm.min_spare_servers:
设置空闲服务进程的最低数目. 仅在 pm 设置为 dynamic 时使用. 必须设置.

pm.max_spare_servers:
设置空闲服务进程的最大数目. 仅在 pm 设置为 dynamic 时使用. 必须设置.


php-fpm以哪种模式来启动是由pm这个参数来决定的,pm有两个参数:static dynamic。当pm=static时,只有pm.max_children这个参数会起作用,其它的三个参数不起作用,这时候php-fpm的进程管理就是以静态的方式来管理,由pm.max_children来指定要启动多少个php-fpm进程。

当pm=dynamic时,这时候php-fpm的进程管理以动态的方式来管理,由pm.start_servers来指定启动时要启动多少个php-fpm进程,pm.min_spare_servers设置空闲服务进程的最低数目,pm.max_spare_servers设置空闲服务进程的最大数目。

在调整参数时要注意的一点是pm.max_children不能低于pm.start_servers,我当初就是没注意时这一点,导致php-fpm无法启动。

那么,对于我们的服务器,选择哪种执行方式比较好呢?这两种方式各有优缺点,就个人经验来说如果服务器的访客比较稳定,并且服务器内存比较大的情况下,可以设置为静态模式,因为静态模式下服务器不需要花费时间去创建和消除php-fpm进程。如果服务器的访客不是那么固定可以采用动态模式,平时采用一个较低的进程数来服务以达到节约内存,到高峰期时服务器自然会调整更多的php-fpm进程来服务。

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今4761 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2017-7-1 18:16:33
    • 您是本站第 13193766 位访客

    广告区 Guǎng Gào