forked from wangziqi/gongxue-base
test: record docker benchmark resource evidence
This commit is contained in:
@@ -186,6 +186,24 @@ Remove-Item Env:\DB_POOL_MAX
|
||||
|
||||
这个入口模拟的是“4 核 16G shared-host 中 API 容器的资源约束”,不是完整云服务器复刻。当前本地 Supabase/PostgreSQL 仍跑在 Docker Desktop 的 Supabase stack 中,除非额外手工限制 DB 容器资源,否则数据库容器仍可能使用 Docker Desktop 的全局资源。正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL shared-host 参数、真实对象存储/CDN 和真实网络下复跑。
|
||||
|
||||
每次运行都会额外生成 `docker-4c16g-resource-evidence-*.json/md`,记录 Docker Desktop 总 CPU/内存、API 容器实际 CPU/内存限制、DB 容器是否被限制、`DB_POOL_MAX` 和每个压测报告的摘要。该文件位于已忽略的 `docs/refactor/performance-reports/`,用于防止后续把“只限制 API 容器”的本地结果误写成完整 4 核 16G 生产容量;它不能替代目标云服务器正式压测证据。
|
||||
|
||||
如需要在本地显式限制 Supabase PostgreSQL 容器资源,可以打开下面开关。脚本默认会在结束后恢复 DB 容器原始限制;如果你希望保留限制用于排查,才设置 `BENCHMARK_KEEP_DB_LIMIT=true`。
|
||||
|
||||
```powershell
|
||||
$env:BENCHMARK_LIMIT_DB_RESOURCES="true"
|
||||
$env:BENCHMARK_DB_CONTAINER="supabase_db_tiku-saas-local"
|
||||
$env:BENCHMARK_DB_CPUS="2.0"
|
||||
$env:BENCHMARK_DB_MEMORY="8g"
|
||||
npm run perf:api:docker-4c16g
|
||||
Remove-Item Env:\BENCHMARK_LIMIT_DB_RESOURCES
|
||||
Remove-Item Env:\BENCHMARK_DB_CONTAINER
|
||||
Remove-Item Env:\BENCHMARK_DB_CPUS
|
||||
Remove-Item Env:\BENCHMARK_DB_MEMORY
|
||||
```
|
||||
|
||||
注意:Docker `update` 只能限制已有容器的 cgroup 资源,不会替代 PostgreSQL 参数调优。限制 DB 容器后仍必须跑 `PG_TUNING_PROFILE=shared-host npm run perf:postgres:evidence -- --strict --json` 检查 `shared_buffers`、`work_mem`、超时、JIT、`pg_stat_statements` 和 `pending_restart`。
|
||||
|
||||
如需保留 API 容器便于排查:
|
||||
|
||||
```powershell
|
||||
|
||||
Reference in New Issue
Block a user