php / php/php-src

PHP_FCGI_MAX_IDLE_TIMEOUT environment variabile option for php-cgi

未关闭
#13,533 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Feature SAPI: cgi
主要语言
C
星标
40.4k
派生
8.2k
平均合并
2 天 15 小时
30 天内合并 PR
103

描述

Description

I'm writing an "external" multiplatform php fastcgi process manager in golang for the caddy webserver, something like php-fpm but using the php-cgi executable in fastcgi mode;

while implementing it using socket passing to be faster simpler and have zero-copy between processes

i've found that i wanted to add an option in my process manager analogous to php-fpm pm.process_idle_timeout to free memory when the server load is low and to avoid eventual memory leaks

I've thinked about how to implement this feature for a while in a way that does not require modifying php-cgi itself, but without finding a solution that allowed to keeping zero-copy socket passing.

The proposal is to add an environment variabile option that instruct php-cgi processes to self terminate after a certain amount of time if no requests are received, something like the already existing PHP_FCGI_MAX_REQUESTS that already aligns with php-fpm pm.max_requests.

Eventually having millisecond granularity unlike second granularity only like in pm.process_idle_timeout will be a plus.

That Is... Hoping i'm not missing something obviuos and that the proposal make sense.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先检查 php-cgi FastCGI 进程的生命周期以及现有的 PHP_FCGI_MAX_REQUESTS 选项,因为没有指定源文件或测试。定义应如何配置和测量空闲超时,然后添加测试覆盖,表明空闲进程会终止,而接收请求的进程会保持活动状态。

由索引模型根据 Issue 内容生成。

评估

技术栈
c
领域
backend
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。