perf(postgres): 回收突发连接并等待验收副作用
失败 Run 的未提交任务已取消,但退款 outbox 尚未完成时下一轮会继承 API 连接高水位和 canceled acquire 增量,污染容量验收。 新增 AI_GATEWAY_DATABASE_MAX_CONN_IDLE_SECONDS,生产配置 30 秒回收突发空闲连接;验收中止后等待旧任务、退款、回调和数据库连接全部收敛后才允许新负载启动。 验证:Go 全量测试、gofmt、bash -n、ShellCheck、kubectl kustomize 和 git diff --check 通过。
This commit is contained in:
@@ -65,6 +65,7 @@ WebP 和 4K 图片。128 组输入组合避免只命中相同缓存;每四个
|
||||
AI_GATEWAY_ASYNC_WORKER_INSTANCE_HARD_LIMIT
|
||||
AI_GATEWAY_DATABASE_MAX_CONNS
|
||||
AI_GATEWAY_DATABASE_MIN_IDLE_CONNS
|
||||
AI_GATEWAY_DATABASE_MAX_CONN_IDLE_SECONDS
|
||||
AI_GATEWAY_MEDIA_MATERIALIZATION_CONCURRENCY
|
||||
AI_GATEWAY_MEDIA_REQUEST_CONCURRENCY
|
||||
AI_GATEWAY_WORKER_REPLICAS_NINGBO
|
||||
@@ -83,8 +84,10 @@ AI_GATEWAY_WORKER_REPLICAS_HONGKONG
|
||||
API Pod 使用独立发布配置 `AI_GATEWAY_API_DATABASE_MAX_CONNS`,生产同构验收默认使用 `64`;
|
||||
也可通过 `AI_GATEWAY_ACCEPTANCE_API_DATABASE_MAX_CONNS` 覆盖本次验收值,无需修改 Go 代码。
|
||||
所有 API/Worker Pool 的 `AI_GATEWAY_DATABASE_MIN_IDLE_CONNS` 固定为 `4`,仅预热必要连接,
|
||||
其余连接按负载弹性创建,避免四个 Pod 在空闲时就占满 PostgreSQL 连接预算。各档表中的
|
||||
数据库池仍表示单个 Worker 的最大连接数。
|
||||
`AI_GATEWAY_DATABASE_MAX_CONN_IDLE_SECONDS` 为 `30`,突发扩出的空闲连接会及时回落,
|
||||
避免四个 Pod 在空闲时占满 PostgreSQL 连接预算。各档表中的数据库池仍表示单个 Worker
|
||||
的最大连接数。中止旧 Run 后还必须等待未提交任务、退款 outbox、回调 outbox 和连接高水位
|
||||
全部收敛,才会启动下一轮负载。
|
||||
|
||||
每档依次运行全部五个模拟 Profile 三次。失败时恢复上一个已完整通过的档位,流量保持
|
||||
`validation`,不会自动放开正式请求。
|
||||
|
||||
Reference in New Issue
Block a user