繁体   English   中英

什么是PHP-FPM池,什么是pm.max_children?

[英]What are PHP-FPM pools and what is pm.max_children?

我有一个带有3个池的NGINX和PHP-FPM的Drupal网站。

我想知道什么是FPM池,或者只是给我提供了良好文档的链接,我已经搜索了有关此主题的信息,但是我发现的全部是如何配置“ X”以获得更好的性能。

另外,pm.max_children是什么? 我最近在日志中注意到,当池www1达到此值时,池www1停止工作,并在我的站点上也锁定了一个页面,直到重新加载PHP-FPM。 为什么一段时间后我到达pm.max_children? 有没有一种方法可以在这种情况下检测并做出反应...重新加载PHP-FPM? 有没有办法避免到达pm.max_children?

谢谢大家的知识。

PD:我正在使用perusio的Drupal和Nginx的配置。

好吧,您可以简单地说每个池就像一个单独的php,对我来说,我使用池来由不同的用户运行每个池,在资源方面给每个池适当的限制,例如在同一服务器上运行的各个网站。

我不明白为什么同一个站点有3个池,您在nginx中使用upstream吗?

至于max_children是允许fpm生成以处理并发连接的已生成进程的数量,如果您有很多并发连接,则最好增加该数量,如果达到该数量,则fpm不会生成另一个子并等待一个可以自由处理等待的请求。

编辑

尝试使用此配置,可能会很有用,这是配置文件的一部分,默认情况下带有注释。

; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For 
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
;pm.max_requests = 500

这也是另一个

; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM