php-fpm进程管理方式(static和dynamic)

Posted 歉信君 —— 信真科技·信守真品 www.xinzhenkj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php-fpm进程管理方式(static和dynamic)相关的知识,希望对你有一定的参考价值。

目前最新5.3.x的php-fpm,有两种管理进程的方式,分别是static和dynamic。

如果设置成static,进程数自始至终都是pm.max_children指定的数量,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers配置将没有作用。

如果设置成dynamic,则进程数是动态的,最开始是pm.start_servers指定的数量,如果请求较多,则会自动增加,但不超过 pm.max_children指定的数量,同时保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理, 保证多余的进程数不多于pm.max_spare_servers。

php-fpm启动后,一个php-cgi进程约战3M内存,但是当它们处理过一些请求后,有些内存是释放不掉的,占用的内存能达到20M-30M不等。

对于内存比较吃紧,同时并发量不是很大的应用,可以考虑采用static的方式,这样可以很好的控制php-fpm的所消耗的总内存数,让系统更加 平稳运行。另外由于并发量很小,可以适当的把设置pm.max_requests小一些,以便让php-fpm进程有机会重启,从而释放其占用的内存。

以上是关于php-fpm进程管理方式(static和dynamic)的主要内容,如果未能解决你的问题,请参考以下文章

PHP进程管理三种模式

阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之php-fpm配置及其与Nginx的通信

php-fpm解读-进程管理的三种模式

php-fpm进程管理

php-fpm参数调优

Linux -- PHP-FPM的源码解析和模型