我正在为一个流量非常大的网站使用 Nginx 和 Php-fpm(php 5.5 + opcode),php-fpm 状态端点用于监控正在发生的事情。在流量高峰之后,尽管没有更多流量,但 200 个“活动进程”仍在运行。
这是我的 php-fpm 池配置:
pm.max_children = 1024
pm.start_servers = 32
pm.min_spare_servers = 32
pm.max_spare_servers = 64
pm.max_requests = 500
以下是“始终运行”进程的 php-fpm 状态结果:
{
pid: 24223,
state: "Running",
start time: 1415881336,
start since: 1307629,
requests: 186,
request duration: 1306169216849,
request method: "GET",
request uri: "/index.php?loca.....",
content length: 0,
user: "-",
script: "/home/ebuildy/app/index.php",
last request cpu: 0,
last request memory: 0
},
这个过程应该被“杀死”并处于空闲状态,不是吗?
答案1
将 PHP-FPM 切换到按需并将超时值设置得低于当前值。
答案2
根据您的配置,
pm.min_spare_servers = 32
32 个子进程将始终处于空闲状态。如果您不想这样,请切换到按需或静态模式。