Apache重载后旧代插槽无法退出、计分板占满问题求助
Apache重载后旧代插槽无法退出、计分板占满问题求助
各位大佬好,我这边遇到一个挠头的Apache生产环境问题,想请大家帮忙分析下:
我们的服务器环境是:Rocky 9.4 系统,搭配 httpd 2.4.57-11,用的是MPM-Event模式,PHP服务用的是php-fpm 8.2。
正常情况下的操作流程
平时我们修改Web服务器配置后,都是用**重载(reload)**的方式更新,这样完全不会中断服务:Apache会生成新的插槽/服务进程来承接新请求,同时把当前正在运行的旧进程标记为「旧代」,不再接收新请求,等这些旧进程处理完手上的现有请求后,就会自动退出。
异常服务器的问题表现
但有一台服务器偏偏出现了异常:
- 每次重载后,总有1-2个旧连接迟迟关不掉,导致所有旧代插槽都无法正常退出;
- 反复执行几次重载后,Apache的计分板(scoreboard)会被这些不接收新请求的旧代插槽占满,最终触碰到
ServerLimit上限,弹出**「Scoreboard Full」**错误,服务器彻底无法处理新请求; - 另外,如果用优雅重启(graceful restart)的话,服务器会直接停服90秒左右,之后才恢复正常服务。
目前我暂时还没找到根因,想请教下大家有没有类似的排查思路或者解决方向?比如:
- 怎么定位那些卡住的旧连接到底在等待什么?
- Apache或者php-fpm的哪些配置可能导致这种情况?
- 有没有什么日志或者工具可以帮我进一步排查?
备注:内容来源于stack exchange,提问作者Smock
相关产品推荐
相关产品推荐

