由于我最近的帖子被错误地标记为重复,因此再次发布。
我有一个Symfony应用,该应用使用NGINX作为php5-fpm的反向代理。
该站点的用户运行一个报告功能,该功能生成一个子进程。但是,导出将失败,并放弃fpm子进程。一段时间后,FPM最终将使用pm.max_children设置,并且由于上游套接字不可用,导致整个站点瘫痪。
我知道这可能与我的代码有关,但是我需要一个更直接的解决方案来自动重新启动fpm或强制其放弃空闲的孩子。
我尝试过从动态切换为按需设置pm.process_idle_timeout,但是它不会杀死它们。修改最大子级,启动服务器等只会延迟不可避免的情况。
我目前正在使用monit作为临时解决方案,以在套接字无法访问时重新启动fpm。