php-fpm进程管理方式以及子进程数量配置原则详解

php-fpm的进程管理方式pm是一个重要的参数,主要来控制子进程的数量。

pm进程管理方式有三种:

static:

表示在php-fpm运行时直接fork出 pm.max_chindren个子进程

dynamic:

表示,运行时fork出pm.start_servers个进程,随着负载的情况,动态的调整,最多不超过pm.max_children个进程。同时,保证闲置进程数不少于pm.min_spare_servers数量,否则新的进程会被创建,当然也不是无限制的创建,最多闲置进程不超过pm.max_spare_servers数量,超过则一些闲置进程被清理。

ondemand: 

当有请求时,创建进程,启动不创建,最多不超过pm.max_chindren进程数,当进程闲置会在pm.process_idle_timeout秒后被及时释放。

如果选择配置pm参数?

dynamic适合小内存机器,灵活分配进程,省内存。static适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗。一般大访问量应用不会选择ondemand,因为fork一次性大量进程开销很大。

PHP-FPM子进程数量应该如何设置?

一般生产环境会选择static方式

关于max_children, [能利用内存数/(单个进程内存数 * 1.2)];另外一种方式,可将其设置较大[能利用内存数/单个进程内存数],然后观察(PHP-FPM的运行状态),通过max active processes参数来合理配置。

关于start_servers、min_spare_servers、max_spare_servers官方有个建议公式:

start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2

时间: 2024-10-29 03:27:42

php-fpm进程管理方式以及子进程数量配置原则详解的相关文章

php5.3中php-fpm进程管理方式

  如果设置成dynamic,则进程数是动态的,最开始是pm.start_servers指定的数量,如果请求较多,则会自动增加,但不超过pm.max_children指定的数量,同时保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理,保证多余的进程数不多于pm.max_spare_servers.   当php-fpm启动后,一个php-cgi进程约战3M内存,但是当它们处理过一些请求后,有些内存是释放不掉的,占用的内存能达到20M-30M不等.  

Nginx使用的php-fpm的两种进程管理方式及优化_nginx

PS:前段时间配置php-fpm的时候,无意中发现原来它还有两种进程管理方式.与Apache类似,它的进程数也是可以根据设置分为动态和静态的. php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本.在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php.ini一样的配置风格. 在5.2.x版本中,php-fpm.conf中对于进程管理号称是有两种风格,一种是静态(static)的,一种是类似于apache

Android权限管理之Permission权限机制及使用详解_Android

前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过程中讨论比较多的一个知识点Android 6.0 权限适配问题来进行学习,不过我不想直接进入这个主题,所以选择先去了解一下Android的Permission权限机制及使用 Android权限机制: 权限是一种安全机制.Android权限主要用于限制应用程序内部某些具有限制性特性的功能使用以及应用程序之间的组

深入Android中BroadcastReceiver的两种注册方式(静态和动态)详解_Android

今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来接收来自系统和应用中的广播.在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作:当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户

Android权限管理之Permission权限机制及使用详解

前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过程中讨论比较多的一个知识点Android 6.0 权限适配问题来进行学习,不过我不想直接进入这个主题,所以选择先去了解一下Android的Permission权限机制及使用 Android权限机制: 权限是一种安全机制.Android权限主要用于限制应用程序内部某些具有限制性特性的功能使用以及应用程序之间的组

LINUX 环境下源码方式安装mysql(二)my.cnf配置细节详解

1.执行cmake操作的时候要指定参数: 因为我们使用普通用户权限,对root没有写权限,如果我们采用默认的配置,那么我们安装的时候向root目录中写数据就会失败 所以我们需要指定一个安装路径,且我们要对该路径有读写的权限 2.关于my.cnf文件 my.cnf文件是数据库加载时需要读取的配置文件,所以我们在安装的时候要copy这个文件,可以从support-files中copymy-default.cnf或者my-medium.cnf然后重命名进行使用 重命名一般有2种命名方式:my.cnf

java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解_java

1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不是像SAX那

深入Android中BroadcastReceiver的两种注册方式(静态和动态)详解

今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来接收来自系统和应用中的广播.在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作:当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户

windows server 2008 R2/windows 7管理二十二 ADCS新功能详解及安装

本篇在上篇的基础上发展,有了web,甚至后续有exchange和ocs及其他微软产品,我们可能需要证书的配合才能工作,本篇将环境先做好然后下篇在web上配置和启用证书等. 2008R2上的ADCS的更新如下 Windows Server? 2008 R2 中的 Active Directory(R) 证书服务 (AD CS) 引入了许多功能和服务,这些功能和服务允许更加灵活的公钥基础结构 (PKI) 部署,降低了管理成本,并对网络访问保护 (NAP) 部署提供了更好的支持. 下表中的 AD CS