docs: align web launch checks and postgres tuning

This commit is contained in:
Codex
2026-07-01 08:14:26 +08:00
parent 6ea6d154d8
commit c0258c1859
5 changed files with 26 additions and 4 deletions

View File

@@ -12,7 +12,7 @@
- PostgreSQL 官方 WAL/Checkpointhttps://www.postgresql.org/docs/current/runtime-config-wal.html
- PostgreSQL 官方 Connectionshttps://www.postgresql.org/docs/current/runtime-config-connection.html
说明postgresqlco.nf 的 tuning guide 适合作为 `postgresql.conf` 参数分类和调参入口参考;具体参数语义、重启要求、风险边界和版本差异仍以 PostgreSQL 官方文档为准。当前 Codex 环境直接访问 `https://postgresqlco.nf/tuning-guide` 会返回 403因此落地值不直接抓取该站页面而是把它作为导航来源以 PostgreSQL 官方文档、本项目真实压测结果和上线可观测性共同校验。
说明postgresqlco.nf 的 tuning guide 适合作为 `postgresql.conf` 参数分类和调参入口参考;具体参数语义、重启要求、风险边界和版本差异仍以 PostgreSQL 官方文档为准。如果当前网络环境无法直接打开 `https://postgresqlco.nf/tuning-guide`,不要用第三方转载内容直接替代生产参数,应继续以 PostgreSQL 官方文档、本项目真实压测结果和上线可观测性共同校验。
## 适用前提
@@ -23,6 +23,19 @@
如果 PostgreSQL 是唯一重负载服务,可以使用下方 `dedicated-db` 值;如果 API/worker/Nginx 也在同机,先使用 `shared-host` 值。
## 2026-07-01 调参复核结论
本轮按 postgresqlco.nf 的参数导航重新对照 PostgreSQL 官方文档后,保留当前 `shared-host` profile不把 4 核 16G 机器简单按“数据库独占”调满。原因:
- `shared_buffers`:官方文档说明专用数据库服务器可从约 25% 内存起步,超过 40% 通常不一定更好,因为 PostgreSQL 仍依赖操作系统缓存。同机还要运行 Supabase/API/worker/Nginx因此 `shared-host=3GB` 比 4GB 更保守;独立数据库主机才使用 `dedicated-db=4GB`
- `effective_cache_size`:它只是 planner 对共享缓冲和 OS cache 的估算,不会真实预留内存。`shared-host=10GB` 用来引导 SSD 上合理使用索引,但上线后必须结合 `EXPLAIN (ANALYZE, BUFFERS)` 与慢 SQL 复核。
- `work_mem`:官方文档强调它是每个排序/哈希操作的基准,不是每个连接的总内存。后台报表、导入和复杂查询可能一次使用多份 `work_mem`,所以 `16MB` 是上线起步值,不建议在未观察 temp file spill 和 OOM 风险前直接放大。
- `maintenance_work_mem` / `autovacuum_work_mem`:导入、建索引和 vacuum 会受益,但 autovacuum 多 worker 并发时可能叠加占用内存,因此保留 `512MB/256MB`
- `random_page_cost=1.1`SSD 云盘下可以鼓励索引扫描,但官方文档也提示 planner cost 没有统一理想值,不能只凭单个查询实验盲调。上线后以真实慢 SQL、缓存命中和查询计划为准。
- `max_connections=80`4 vCPU 不靠大量直连抗并发,优先控制 API/worker 连接池和 Supabase pooler。连接数放大只会把数据库推向上下文切换、锁等待和内存压力。
本地 DB 受限压测已经证明:只限制容器 CPU/内存但不调 PostgreSQL 参数时,系统可以保持 0 错误,但 P95 延迟不满足上线门禁。因此生产验收必须按“调参证据 + API 阶梯压测 + 慢 SQL/pg_stat_statements”闭环完成而不是只填一组参数。
## 推荐起步值
| 参数 | shared-host 起步值 | dedicated-db 起步值 | 说明 |