首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP5-FPM和“按需”

PHP5-FPM和“按需”
EN

Server Fault用户
提问于 2013-02-13 08:39:16
回答 2查看 7.8K关注 0票数 4

我已经用Nginx和PHP5-FPM建立了一个服务器,一切都很顺利。然而,随着我向服务器添加越来越多的站点,我看到内存使用量稳步增加,我得出结论认为PHP5-FPM是“罪魁祸首”。

我目前所做的是为每个站点设置一个单独的PHP5 5-FPM池,并根据预期的流量配置该池。但是,有了足够多的站点,我最终会有一个服务器,它只在相当多的PHP5 5-FPM“子级”上运行,而这些服务器只是在等待工作。

我刚刚发现了按需PHP5-FPM模式,它允许我以一种方式配置PHP5-FPM,以便只在实际需要时分叉子进程,然后在给定的时间内继续处理。

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

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-02-13 17:15:04

没错,start_servers、min_spare_servers和max_spare_servers不适用于按需模式。以下变量适用于按需模式:

  • 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,我们使用pm.max_requests强制回收的fpm儿童和避免高内存使用。

希望这能帮上忙

欢迎光临。

票数 11
EN

Server Fault用户

发布于 2016-08-24 21:34:37

可能是这个bug https://bugs.php.net/bug.php?id=72935

TLDR;如果两个客户端以按需模式连接到同一个unix套接字上的PHP,则在接受()之前,只有一个客户端才能获得accept()ed。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/478281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档