PHP-FPM进程持续占满且无空闲,流量高峰期引发慢请求与504错误的排查求助
PHP-FPM进程持续占满且无空闲,流量高峰期引发慢请求与504错误的排查求助
大家好,想请教各位一个困扰我好久的问题:我们的网站每年这个时段流量都会显著上涨,一直用php-fpm处理请求,但最近频繁遇到响应变慢和504网关超时的情况。
我们配置的php-fpm参数看起来还算扎实:
pm = dynamic pm.max_children = 266 pm.start_servers = 66 pm.min_spare_servers = 66 pm.max_spare_servers = 199
但奇怪的是,php-fpm服务一启动,子进程就迅速被占满,很快就逼近了pm.max_children的266上限(实际观察到差不多260个进程)。运行一两个小时后,我执行fpm_get_status拿到了以下状态信息:
"pool": "www", "process-manager": "dynamic", "start-time": 1724668195, "start-since": 9420, "accepted-conn": 76026, "listen-queue": 346, "max-listen-queue": 512, "listen-queue-len": 511, "idle-processes": 0, "active-processes": 266, "total-processes": 266, "max..."
从状态数据里能看到几个核心问题:idle-processes一直是0,所有进程都处于活跃状态;同时*listen-queue有346的积压*,最高甚至到过512。我本来以为动态进程管理会根据流量灵活调整,但现在进程直接拉满且完全没有空闲,导致请求排队越来越多,最终触发504超时。
想请问各位大佬,这种情况可能是什么原因导致的?有没有一些具体的排查方向或者优化建议?
备注:内容来源于stack exchange,提问作者QuestionAsker1995
相关产品推荐
相关产品推荐

