在php-fpm两过程管理模式的深度分析
PHP FPM两过程管理模式PHP FPM进程数也可分为动态和静态根据设置。
一是打开一个指定数量的php-fpm进程直接,不再或少;
另一种方法是在一开始的时候就一定php-fpm进程。当请求大小的增加,对php-fpm进程数增加到上限动态。空闲时,空闲进程的数量自动释放到一个下限。
这两种不同的执行方式可以根据服务器的实际需要进行调整。
让我们从几个与此相关的参数开始。他们是下午,pm.max_children,pm.start_servers,pm.min_spare_servers和pm.max_spare_servers。
PM意味着有两个值可以通过这种方式选择,静态(静态)或动态(动态)。
在老版本中,动态为apache-like.this应注意在配置文件中的指示。PHP5.3
PHP程序默认的静态处理模式将使PHP的CGI程序长时间占据内存无法释放。这也是一个nginx的失败的原因。因此,PHP程序的处理方式可以改变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设置为静态的,唯一的pm.max_children参数实际上是有效的。系统打开php-fpm进程数设置。
如果DM设置为动态的,然后pm.max_children参数无效,3个参数生效。该系统将开始pm.start_servers php-fpm进程在php-fpm运行开始,然后调整php-fpm进程数之间的pm.min_spare_servers和pm.max_spare_servers动态地根据系统的需要。
那么,哪种执行方式对我们的服务器更好呢事实上,与Apache一样,我们运行的PHP程序在执行后或多或少有内存泄漏。
这就是为什么一个php-fpm进程占用的内存只有300万当它启动时,它会上升到米后的一段时间。因此,动态方法可以回收内存,因为它将结束重复的过程,所以建议使用较少的内存的服务器或VPS的最大数量为依据。的记忆/ 20m.for例获得,512m的VPS,建议pm.max_spare_servers被设置为20。至于pm.min_spare_servers,建议根据服务器的负载情况,并适当的值是5 ~ 10之间。
对于一个大的存储服务器,设置为静态的效率就会提高。由于频繁开关php-fpm的过程也有时间延迟,它会有一个更好的静态效应当内存足够大,数量可根据记忆/ 30m.for例获得2GB内存的服务器可以被设置为50;4GB内存可以设置为100。