PHP5-FPM和’ondemand’

前端之家收集整理的这篇文章主要介绍了PHP5-FPM和’ondemand’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经用NginxPHP5-FPM建立了一个服务器,运行正常.但是,当我向服务器添加越来越多的站点时,我发现内存使用量稳步增加,我得出的结论是PHP5-FPM是“怪”.

我目前所做的是为每个站点设置一个单独的PHP5-FPM池,并根据预期的流量配置该池.但是,有足够的网站,我最终会有一个服务器,它只是在相当大量的PHP5-FPM“孩子”上寻找工作.

我刚刚发现了按需PHP5-FPM模式,它允许我以某种方式配置PHP5-FPM,以便子进程仅在实际需要时分叉,然后在给定的持续时间内保持活动状态.

但是,我真的找不到太多关于此的细节.我最好奇的是变量pm.max_children和pm.max_requests如何影响ondemand模式(如果有的话).我假设变量pm.start_servers,pm.min_spare_servers,pm.max_spare_servers不适用于ondemand模式.

你是对的,start_servers,min_spare_servers和max_spare_servers不适用于ondemand模式.以下变量是适用于ondemand模式的变量:

> pm.max_children
> pm.process_idle_timeout
> pm.max_requests

设置pm = ondemand时,FPM会在需要时尽快分叉子项,始终保持子项数小于或等于pm.max_children,因此该变量是同时分叉的子项数的上限.

另外两个变量允许您指定何时销毁子项:

> pm.process_idle_timeout设置孩子在被销毁之前等待没有工作的时间.它以秒为单位定义.
> pm.max_requests定义子项在销毁之前将处理的请求数(一次一个).例如,如果将此变量设置为值50,则子项将处理50个请求并自行关闭.如果FPM主进程仍然需要另一个子进程,它将分叉一个新进程.

在我的公司,我们在FPM上使用ondemand模式,我们使用pm.max_requests强制回收fpm子节点并避免高内存使用.

希望这可以帮助,

问候.

猜你在找的PHP相关文章