一次 502 的完整排查:Nginx 与 PHP-FPM 之间发生了什么
AI 摘要
Nginx 502 错误排查,通过分析日志发现是 PHP-FPM 进程数限制,通过调整进程数、优化查询和监控磁盘使用率解决问题。
由 AI 生成,仅供参考
四月二十三号晚上十一点,发现网站打不开。
打开一看是 502。这种错误只说明一件事:Nginx 没能从上游拿到响应。至于上游为什么没响应,得自己查(晕)
先看 Nginx 错误日志,第一行就有方向:
connect() to unix:/tmp/php-cgi-82.sock failed
(11: Resource temporarily unavailable) while connecting to upstream
连接被拒,不是文件不存在,说明进程活着,是打满了。ps 数了一下 php-fpm 的 worker,正好卡在 pm.max_children 上。
再看 FPM 慢日志,抓到一个跑了四十多秒的请求,是后台的一个统计接口,里面有个没加索引的 GROUP BY。
当时做了三件事。临时把 max_children 从 50 调到 80,先把服务撑住;给那个接口的查询加了索引;接口本身挪成了低频调用。
评论(0)
登录后才能发表评论。去登录 →
还没有评论,来抢沙发吧~