forked from wangziqi/gongxue-base
chore: harden production readiness gates
This commit is contained in:
@@ -115,11 +115,30 @@
|
||||
|
||||
按 0.05 到 0.2 req/s/人的页面节奏粗略折算,50 worker 舒适吞吐约对应 2,920 到 11,680 名活跃在线学生请求吞吐,100 worker 上沿约对应 2,770 到 11,080 名,150 worker 压力区约对应 2,645 到 10,580 名。该数字仍是本地 Docker 观察值,正式承诺必须在目标 4 核 16G 云服务器和真实前端埋点下复跑。
|
||||
|
||||
### 2026-07-01 05:57 Docker API 受限资源复核
|
||||
|
||||
本轮在完成生产 provider readiness 加固、`npm run smoke:launch-persona`、`npm run smoke:taro:h5:interaction` 和 `npm run perf:postgres:evidence` 后复跑。压测入口为 `npm run perf:api:docker-4c16g`,API 容器按脚本默认限制为 2 CPU/4G,使用 `PERF_AUTH_MODE=app_session`,排行榜仍未纳入默认负载。
|
||||
|
||||
| 并发 worker | 时长 | 刷题写入比例 | 请求数 | 错误率 | 吞吐 | P95 | P99 | 结论 |
|
||||
| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||||
| 30 | 120s | 0% | 42,089 | 0.00% | 349.70 req/s | 202.20 ms | 295.16 ms | 通过只读上线门禁 |
|
||||
| 50 | 60s | 10% | 25,157 | 0.00% | 416.54 req/s | 215.00 ms | 292.56 ms | 混合读写舒适 |
|
||||
| 100 | 60s | 8% | 23,873 | 0.00% | 394.18 req/s | 414.67 ms | 495.91 ms | 可用但延迟偏高 |
|
||||
| 150 | 60s | 6% | 22,523 | 0.00% | 370.53 req/s | 621.55 ms | 750.70 ms | 零错误但进入压力区 |
|
||||
|
||||
本轮 `npm run perf:summary` 校验结果:
|
||||
|
||||
- 30 worker 只读门禁通过,满足 `errors=0`、`errorRate<=0.001`、`p95<=300ms`、`p99<=800ms`、`duration>=120s`。
|
||||
- 50 worker 混合读写满足 `P95<=500ms/P99<=1200ms`,是当前受限 API 容器下更保守的舒适区。
|
||||
- 100 worker 混合读写仍 0 错误,P95 约 415ms,适合作为上沿观察;150 worker P95 约 622ms,只作为压力区观察,不作为生产承诺。
|
||||
|
||||
按 0.05 到 0.2 req/s/人的页面节奏粗略折算,50 worker 舒适吞吐约对应 2,080 到 8,330 名活跃在线学生请求吞吐;100 worker 上沿约对应 1,970 到 7,880 名;150 worker 压力区约对应 1,850 到 7,410 名。生产 4 核 16G 首版容量建议先按这组本地受限资源折算值的 30% 到 50% 保守规划,即约 620 到 4,160 名活跃在线学生请求吞吐,再以上云复测和真实前端埋点修正。
|
||||
|
||||
## 初步结论
|
||||
|
||||
- 本地 Docker 环境下,50 worker 混合读写 P95 约 174.26ms,100 worker 混合读写 P95 约 326.21ms,100 worker 已接近当前本机舒适区上沿;150 worker 仍然 0 错误,但 P95 约 490.38ms,已经是压力区。
|
||||
- 按最新 584 req/s 的 50 worker 舒适吞吐粗略折算,如果未来前端真实埋点显示每名在线学生平均 0.05 到 0.2 req/s,则理论请求吞吐约对应 2,920 到 11,680 名活跃在线学生;按 100 worker 上沿 554 req/s 估算约为 2,770 到 11,080 名;按 150 worker 压力区 529 req/s 估算约为 2,645 到 10,580 名。这只是吞吐换算,不是生产 SLA。
|
||||
- 当前 Docker Desktop 给了 20 CPU 和约 62.7GB 内存,生产如果使用 4 核 16G 单机,首版容量承诺建议先按本地折算值的 30% 到 50% 保守规划,再以云端复测和真实前端埋点上调。
|
||||
- 本地高资源 Docker Desktop 历史结果显示代码和索引在 50/100 worker 下有较高吞吐;但最新受限 API 容器复核更接近保守上线口径,50 worker 混合读写 P95 约 215ms,100 worker P95 约 415ms,150 worker P95 约 622ms 已经进入压力区。
|
||||
- 按最新 416.54 req/s 的 50 worker 舒适吞吐粗略折算,如果未来前端真实埋点显示每名在线学生平均 0.05 到 0.2 req/s,则理论请求吞吐约对应 2,080 到 8,330 名活跃在线学生;按 100 worker 上沿 394.18 req/s 估算约为 1,970 到 7,880 名;按 150 worker 压力区 370.53 req/s 估算约为 1,850 到 7,410 名。这只是吞吐换算,不是生产 SLA。
|
||||
- 生产如果使用 4 核 16G 单机,首版容量承诺建议先按最新本地受限资源折算值的 30% 到 50% 保守规划,即约 620 到 4,160 名活跃在线学生请求吞吐,再以云端复测、真实前端埋点、CDN/对象存储和生产 PostgreSQL 调参后结果上调。
|
||||
- 正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、对象存储/CDN、真实前端请求节奏和生产网络下复跑。
|
||||
|
||||
## 后续复测
|
||||
|
||||
Reference in New Issue
Block a user