forked from wangziqi/gongxue-base
docs: update backend capacity evidence
This commit is contained in:
@@ -81,7 +81,7 @@
|
||||
|
||||
同轮 `npm run perf:summary -- --allow-writes` 已分别通过 100 worker `P95 <= 300ms/P99 <= 800ms` 和 150 worker `P95 <= 500ms/P99 <= 1200ms` 的容量观察阈值。
|
||||
|
||||
### 2026-07-01 最新真实数据容量复核
|
||||
### 2026-07-01 02:48 真实数据容量复核
|
||||
|
||||
本轮按用户最新要求重新确认本地 Supabase 数据量、Docker Desktop 资源,并复跑只读上线门禁与 50/100/150 混合读写阶梯。排行榜仍未纳入默认负载,头像相关链路不参与压测,因为学生头像产品策略已固定为男女预设头像。
|
||||
|
||||
@@ -97,10 +97,28 @@
|
||||
- 30 worker 只读门禁通过,满足 `errors=0`、`errorRate<=0.001`、`p95<=300ms`、`p99<=800ms`、`duration>=120s`。
|
||||
- 50/100/150 worker 混合读写均为 0 错误;100 worker 已接近 `P95=300ms` 舒适线,150 worker 只作为压力上沿观察。
|
||||
|
||||
### 2026-07-01 03:12 真实数据容量复核
|
||||
|
||||
本轮在同一套本地 Docker/Supabase 真实迁移库上继续复跑,并先执行 `npm run smoke:launch-persona` 确认三类角色旅程通过。普通学生旅程覆盖 SVIP 后刷题、收藏和错题复习入口;租户管理员旅程覆盖 dashboard、主题、学生和销售转化入口;平台管理员旅程覆盖租户、套餐和审计入口;同时验证学生访问后台、租户管理员跨租户访问和学生访问平台后台均被拒绝。
|
||||
|
||||
| 并发 worker | 时长 | 刷题写入比例 | 请求数 | 错误率 | 吞吐 | P95 | P99 | 结论 |
|
||||
| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||||
| 30 | 120s | 0% | 60,326 | 0.00% | 499.27 req/s | 151.29 ms | 214.61 ms | 通过只读上线门禁 |
|
||||
| 50 | 60s | 10% | 35,608 | 0.00% | 584.18 req/s | 174.26 ms | 224.04 ms | 混合读写舒适 |
|
||||
| 100 | 60s | 8% | 33,843 | 0.00% | 554.42 req/s | 326.21 ms | 422.33 ms | 接近舒适区上沿 |
|
||||
| 150 | 60s | 6% | 32,364 | 0.00% | 528.81 req/s | 490.38 ms | 662.42 ms | 零错误但进入压力区 |
|
||||
|
||||
本轮 `npm run perf:summary` 校验结果:
|
||||
|
||||
- 30 worker 只读门禁通过,满足 `errors=0`、`errorRate<=0.001`、`p95<=300ms`、`p99<=800ms`、`duration>=120s`。
|
||||
- 50/100/150 worker 混合读写均为 0 错误;100 worker 已接近舒适区上沿,150 worker 只作为压力观察,不作为生产承诺。
|
||||
|
||||
按 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 云服务器和真实前端埋点下复跑。
|
||||
|
||||
## 初步结论
|
||||
|
||||
- 本地 Docker 环境下,50 worker 混合读写 P95 约 151.63ms,100 worker 混合读写 P95 约 303.93ms,100 worker 已接近当前本机舒适区上沿;150 worker 仍然 0 错误,但 P95 约 490.53ms,已经是压力区。
|
||||
- 按最新 658 req/s 的 50 worker 舒适吞吐粗略折算,如果未来前端真实埋点显示每名在线学生平均 0.05 到 0.2 req/s,则理论请求吞吐约对应 3,290 到 13,160 名活跃在线学生;按 100 worker 上沿 610 req/s 估算约为 3,050 到 12,210 名;按 150 worker 压力区 555 req/s 估算约为 2,775 到 11,100 名。这只是吞吐换算,不是生产 SLA。
|
||||
- 本地 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% 保守规划,再以云端复测和真实前端埋点上调。
|
||||
- 正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、对象存储/CDN、真实前端请求节奏和生产网络下复跑。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user