| 问题 | N 个应用实例 × 池大小 M = 总连接数,易超限 |
|---|---|
| 手段 | 数据库代理复用连接;池内收敛空闲连接 |
| 配套 | 慢查询与长事务会长期占用连接,需一并治理 |
连接数放大测算(示例)
| 层 | 实例数 | 单实例池 | 总连接 |
|---|---|---|---|
| 应用直连 | 20 | 20 | 400 |
| 扩容后直连 | 40 | 20 | 800 |
| 经数据库代理复用 | 40 | 池化收敛 | 约 100–200 |
- 先核算 max_connections 与单连接内存开销,再决定扩容上限
- 代理层(如 PgBouncer)按事务或语句模式复用后端连接
- 长事务与告警连接按来源统计,防止池被少数调用方耗尽
- 扩容应用实例前按倍数换算数据库连接需求并预留余量
连接数告警要区分活跃与空闲:只看总量会把池预热误判为异常。