dev.to | 📄 原文链接 | 2026-09-14 收录

只在周五下午发作的 Bug:一个被遗忘的僵尸实例

来源:dev.to — 2026-09-13

📋 概述

结算服务每周五下午开始零星返回 500,报错是「too many clients already」,但连接池只配了 20,而 pg_stat_activity 显示这 20 个连接全是 idle。排查依次否掉了慢查询、代码泄漏连接和外部定时任务三种假设后,真凶浮出水面:几个月前做金丝雀实验留下的一台旧实例仍按启动流程占满 20 个连接,它的健康检查里还有每几秒新建一个裸连接的 Bug,而自动伸缩策略每周回收一次进程,正好让泄漏在周一归零、周五再次累积。

🔑 核心要点

💡 金句

把 pg_stat_activity 按 application_name 和 usename 分组,而不只是看数量——我们默认这 20 个 idle 连接都是我们的,却从没核对过归属。
← 返回 dev.to 首页