概述
连接池大小乘以实例数很容易超出数据库上限,造成连接耗尽与请求排队。先测量上限与峰值、算出跨实例的总需求,再把单实例池设为最坏情况仍留有余量的值并监控等待时间,可避免凭经验设置的隐患。
关键步骤
- 测量数据库允许的最大连接与当前峰值。
- 计算所有实例的池大小总和。
- 设定池大小使最坏情况低于上限并预留管理连接。
- 变更后监控连接等待与池饱和。
验证
- 峰值连接低于上限且有余量。
- 正常负载下池等待时间低。
- 最坏情况不超出容量。
- 有文档记录池大小推导。
决策点
多实例各自需要连接时宜前置连接池器;交互流量用有界超时的排队,延迟敏感路径则快速失败。
适用范围
本条目围绕「数据库连接池审计工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
建议在正式环境落地前先在预发或隔离环境演练一遍,把关键观测指标与负责人一并记录,确保出现异常时能快速定位并恢复。
SHOW max_connections;
SELECT count(*) AS active, state FROM pg_stat_activity GROUP BY state;
-- pool_size * instances + admin_conns < max_connections