php-fpm的两种进程管理模式
php-fpm的进程数也是可以根据设置分为动态和静态的。
一种是直接开启指定数量的php-fpm进程,不再增加或者减少;
另一种则是开始的时候开启一定数量的php-fpm进程,当请求量变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。
这两种不同的执行方式,可以根据服务器的实际需求来进行调整。
这里先说一下涉及到这个的几个参数吧,他们分别是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
pm表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件给出的说明了。PHP5.3
php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之 一,因此可以将php-fpm的处理方式改成apache模式。
下面4个参数的意思分别为:
    pm.max_children:静态方式下开启的php-fpm进程数量。
    pm.start_servers:动态方式下的起始php-fpm进程数量。
    pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
    pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置的数量个php-fpm进程。

如果dm设置为dynamic,那么pm.max_children参数失效,后面3个参数生效。系统会在php-fpm运行开始的时候启动 pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和 pm.max_spare_servers之间调整php-fpm进程数。

那么,对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,我们运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。

这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。所以,动态方式因为会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或者VPS上使用。具体最大数量根据 内存/20M 得到。比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。

然后对于比较大内存的服务器来说,设置为静态的话会提高效率。因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据内存/30M 得到。比如说2GB内存的服务器,可以设置为50;4GB内存可以设置为100等。

http://www.jb51.net/article/37784.htm

深入php-fpm的两种进程管理模式详解相关推荐

  1. CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇)

    CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇) 其实呢,路由协议,静态路由 他还是ipv4那一套,只不过多了点东西 该怎么搞怎么搞, ...

  2. linux 进程管理命令详解

    进程调度 Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务.调度程序会被频繁的执行,所以调度程序要尽可能的高效: 2.加强交互性能:在系统相当的负载下,也要保证系统的响应 ...

  3. 【大话Hibernate】Hibernate两种实体关系映射详解

    实体类与数据库之间存在某种映射关系,Hibernate依据这种映射关系完成数据的存取,因此映射关系的配置在Hibernate中是最关键的.Hibernate支持xml配置文件与@注解配置两种方式.xm ...

  4. iOS 两种预览使用详解(配Demo下载)( Quicklook UIDocumentInteractionController)

    文章目录 二. 使用 1. 首先,引入框架 2. 将QLPreviewController设置为属性 3. 初始化 4. 设置代理和数据源 5. 编码问题 个人小结 QLPreviewControll ...

  5. linux下如何解压iso文件怎么打开方式,ISO文件如何打开 ISO文件的两种打开方式【详解】...

    ISO文件如何打开? 我们下载的大部分LINUX安装文件都是iso格式,下载到本地后双击会被WINRAR打开,许多人把它当成了压缩包,这是不正确的,ISO文件通过一些手段不需要解压就可以直接硬盘安装. ...

  6. redis 三种集群模式详解

    概念:redis有三种集群模式,分别为主从模式,哨兵模式以及集群模式,其中主从是最常见的模式 三种集群模式说明 **·**Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性 ...

  7. spd耗材管理流程图_医用耗材SPD管理模式详解

    医用耗材 SPD ( Supply , Processing , Distribution )管理模式(以下统称 SPD 模式)是 在 供应链一体化思想指导下产生的一种典型的精益化管理模式,它是以保证 ...

  8. STM32三种BOOT启动模式详解(全网最全)

    一.三种boot启动模式 一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式. ...

  9. 【安全知识】——SSH的两种远程登录方法详解

    作者名:Demo不是emo   主页面链接:主页传送门 博主简介:一个普通的大二学生,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望对大家有帮助 座右铭:不要让时代的悲哀 ...

最新文章

  1. node.js Web应用框架Express入门指南
  2. ubuntu 14.04使用devstack安装openstack mitaka版本
  3. VTK:可视化之Wireframe
  4. 双向口 与 准双向口 区别
  5. 【Spring】Spring Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
  6. 社交之后又是资讯,支付宝要用内容吸引流量
  7. 实验四:Android 开发基础
  8. awt中监听输入框textField
  9. 专家书单推荐:C++藏书阁(上)
  10. 安装MyBatis教程
  11. sql在select中添加内容为空的字段
  12. 人民日报申论范文:“传统文化”怎么写?
  13. switch系统升级无法连接服务器失败,switch更新无法连接服务器(图文)
  14. 各大洲时区以及Linux环境下修改时区
  15. DHCP spoofing,DHCP snooping,傻傻分不清
  16. 计算机哪里找产品密钥,计算机windows的密钥在哪里可以找到?
  17. 物联网是什么?物联网应用场景有哪些?物联网有什么好处?
  18. 深漂中年程序员回忆录-南下找工作(二)
  19. 用在生产中的裸金属Ironic
  20. 系列学习分布式任务调度 XXL-JOB 之第 1 篇 —— XXL-JOB 介绍(调度中心、执行器)

热门文章

  1. 「C++」C++ Primer Plus 笔记:第十七章 输入、输出和文件
  2. 22_2D函数优化实例
  3. 史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)
  4. 2apt-get命令,deb包安装,源码安装
  5. 3socket编程:UDP编程
  6. svn服务器创建分支原理,svn 创建分支、合并分支、以及报错处理
  7. CNN目标检测(一):Faster RCNN详解
  8. linux设备模型,bus,device,driver,实验遇到的问题
  9. argparse.ArgumentParser()的用法
  10. 使用 Vue + Flask 搭建单页应用