深入php-fpm的两种进程管理模式详解
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的两种进程管理模式详解相关推荐
- CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇)
CCIE理论-第十三篇-IPV6-路由-静态+(EIGRP+OSPF)两种做法+IPV4-ARP代理详解(精髓篇) 其实呢,路由协议,静态路由 他还是ipv4那一套,只不过多了点东西 该怎么搞怎么搞, ...
- linux 进程管理命令详解
进程调度 Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务.调度程序会被频繁的执行,所以调度程序要尽可能的高效: 2.加强交互性能:在系统相当的负载下,也要保证系统的响应 ...
- 【大话Hibernate】Hibernate两种实体关系映射详解
实体类与数据库之间存在某种映射关系,Hibernate依据这种映射关系完成数据的存取,因此映射关系的配置在Hibernate中是最关键的.Hibernate支持xml配置文件与@注解配置两种方式.xm ...
- iOS 两种预览使用详解(配Demo下载)( Quicklook UIDocumentInteractionController)
文章目录 二. 使用 1. 首先,引入框架 2. 将QLPreviewController设置为属性 3. 初始化 4. 设置代理和数据源 5. 编码问题 个人小结 QLPreviewControll ...
- linux下如何解压iso文件怎么打开方式,ISO文件如何打开 ISO文件的两种打开方式【详解】...
ISO文件如何打开? 我们下载的大部分LINUX安装文件都是iso格式,下载到本地后双击会被WINRAR打开,许多人把它当成了压缩包,这是不正确的,ISO文件通过一些手段不需要解压就可以直接硬盘安装. ...
- redis 三种集群模式详解
概念:redis有三种集群模式,分别为主从模式,哨兵模式以及集群模式,其中主从是最常见的模式 三种集群模式说明 **·**Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性 ...
- spd耗材管理流程图_医用耗材SPD管理模式详解
医用耗材 SPD ( Supply , Processing , Distribution )管理模式(以下统称 SPD 模式)是 在 供应链一体化思想指导下产生的一种典型的精益化管理模式,它是以保证 ...
- STM32三种BOOT启动模式详解(全网最全)
一.三种boot启动模式 一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存.用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式. ...
- 【安全知识】——SSH的两种远程登录方法详解
作者名:Demo不是emo 主页面链接:主页传送门 博主简介:一个普通的大二学生,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望对大家有帮助 座右铭:不要让时代的悲哀 ...
最新文章
- node.js Web应用框架Express入门指南
- ubuntu 14.04使用devstack安装openstack mitaka版本
- VTK:可视化之Wireframe
- 双向口 与 准双向口 区别
- 【Spring】Spring Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
- 社交之后又是资讯,支付宝要用内容吸引流量
- 实验四:Android 开发基础
- awt中监听输入框textField
- 专家书单推荐:C++藏书阁(上)
- 安装MyBatis教程
- sql在select中添加内容为空的字段
- 人民日报申论范文:“传统文化”怎么写?
- switch系统升级无法连接服务器失败,switch更新无法连接服务器(图文)
- 各大洲时区以及Linux环境下修改时区
- DHCP spoofing,DHCP snooping,傻傻分不清
- 计算机哪里找产品密钥,计算机windows的密钥在哪里可以找到?
- 物联网是什么?物联网应用场景有哪些?物联网有什么好处?
- 深漂中年程序员回忆录-南下找工作(二)
- 用在生产中的裸金属Ironic
- 系列学习分布式任务调度 XXL-JOB 之第 1 篇 —— XXL-JOB 介绍(调度中心、执行器)
热门文章
- 「C++」C++ Primer Plus 笔记:第十七章 输入、输出和文件
- 22_2D函数优化实例
- 史上最简单的 SpringCloud 教程 | 第十四篇: 服务注册(consul)
- 2apt-get命令,deb包安装,源码安装
- 3socket编程:UDP编程
- svn服务器创建分支原理,svn 创建分支、合并分支、以及报错处理
- CNN目标检测(一):Faster RCNN详解
- linux设备模型,bus,device,driver,实验遇到的问题
- argparse.ArgumentParser()的用法
- 使用 Vue + Flask 搭建单页应用