ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

supabase-postgres-best-practices - conn-limits

supabase-postgres-best-practices - conn-limits

title: Set Appropriate Connection Limits
impact: CRITICAL
impactDescription: Prevent database crashes and memory exhaustion
tags: connections, max-connections, limits, stability

设置适当的连接数限制

连接过多会耗尽内存并降低性能。应根据可用资源设置限制。

错误做法(无限制或连接数过高):

-- 默认 max_connections = 100,但常常被盲目调高showmax_connections;-- 500(对于 4GB 内存来说太高了)-- 每个连接占用 1-3MB 内存-- 500 个连接 * 2MB = 仅连接就占用 1GB!-- 高负载下出现内存不足错误

正确做法(根据资源计算):

-- 公式:max_connections = (内存 MB / 每个连接 5MB) - 预留-- 对于 4GB 内存:(4096 / 5) - 10 = 约 800 理论上限-- 但实际中,100-200 对查询性能更有利-- 4GB 内存的推荐设置altersystemsetmax_connections=100;-- 同时合理设置 work_mem-- work_mem * max_connections 不应超过内存的 25%altersystemsetwork_mem='8MB';-- 8MB * 100 = 最多 800MB

监控连接使用情况:

selectcount(*),statefrompg_stat_activitygroupbystate;

参考:数据库连接

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进