PHP php-fpm你是怎么理解的

对于PHP-fpm一直只知道其配置和一个基本的概念,但是一直没有认真的去理解这个管理器,现在我们一起认识一下一下。

概念:

  • PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器

在PHP53之前这是一个补丁包,但是在PHP54之后这个哥们就转正了,原因是可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点。

相关操作:

--start 启动php的fastcgi进程

--stop 强制终止php的fastcgi进程

--quit 平滑终止php的fastcgi进程

--restart 重启php的fastcgi进程

--reload 重新平滑加载php的php.ini

--logrotate 重新启用log文件

如何优化:

1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。

pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。

下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
区别:
如果pm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果pm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数
分配:
fpm 实际只占很小的内存,但是一般运行一段时间后会上升到25m-28m左右,所以我们按照30m进行计算开启个数。
当前内存/2/30=开启个数

参考:https://blog.csdn.net/qq_32352565/article/details/78450317

你可能感兴趣的:(PHP php-fpm你是怎么理解的)