forked from wangziqi/gongxue-base
chore: add launch readiness smoke and tuning evidence
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 真实迁移数据 API 压测摘要
|
||||
|
||||
更新时间:2026-06-30
|
||||
更新时间:2026-07-01
|
||||
|
||||
这份文件只记录脱敏后的聚合指标,便于 README、上线门禁和后续 AI 开发继续引用。原始 JSON/Markdown 报告位于已忽略的 `docs/refactor/performance-reports/`,不要提交到 Git。
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
|
||||
- 环境:本地 Docker Desktop + 本地 Supabase/PostgreSQL + 本地 API 进程。
|
||||
- 数据:PocketBase 真实导出数据导入新 PostgreSQL 后压测。
|
||||
- 数据规模:约 74,102 道题、1,597 个题目合集、3,102 个练习蓝图、3,500 个单词、2,676 条知识手册、3,670 个用户。
|
||||
- 写入流量:开启真实刷题闭环,包含创建 session、拉取 session detail、提交若干答案、交卷和读取报告。
|
||||
- 数据规模:当前真实迁移库约 74,117 道题、1,601 个题目合集、3,106 个练习蓝图、3,505 个单词、2,678 条知识手册、3,690 个用户、113,810 条答题记录、38,207 条错题和 458 条权益。
|
||||
- 写入流量:混合场景开启真实刷题闭环,包含创建 session、拉取 session detail、提交若干答案、交卷和读取报告。
|
||||
- 商城说明:本地库的订单数据会受 seed、烟测和导入演练影响,当前容量结论聚焦题库读写链路,不用于推断 GMV、支付或订单峰值。
|
||||
- 排行榜:未纳入默认压测,当前产品默认关闭排行榜。
|
||||
- 说明:压测 worker 是无停顿请求流,不等同于真实在线学生数。真实在线容量需要前端埋点后按单个学生平均 RPS 折算。
|
||||
|
||||
@@ -34,11 +35,24 @@
|
||||
| 100 | 60s | 8% | 59,123 | 0.00% | 969.92 req/s | 179.70 ms | 235.19 ms |
|
||||
| 150 | 60s | 6% | 53,167 | 0.00% | 870.06 req/s | 298.23 ms | 402.89 ms |
|
||||
|
||||
### 2026-07-01 上线门禁与读写复核
|
||||
|
||||
这轮在同一套本地 Docker/Supabase 真实迁移库上执行,补充了只读上线门禁和 50 worker 混合读写复核。
|
||||
|
||||
| 并发 worker | 时长 | 刷题写入比例 | 请求数 | 错误率 | 吞吐 | P95 | P99 | 结论 |
|
||||
| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||||
| 30 | 120s | 0% | 108,336 | 0.00% | 897.04 req/s | 68.32 ms | 84.50 ms | 通过只读上线门禁 |
|
||||
| 50 | 60s | 10% | 52,979 | 0.00% | 870.42 req/s | 104.92 ms | 136.22 ms | 通过混合读写观察线 |
|
||||
|
||||
同轮 `npm run smoke:launch-persona` 已通过,覆盖普通学生 SVIP 后刷题、收藏、错题复习入口,租户管理员 dashboard/主题/学生/销售转化入口,平台管理员租户/套餐/审计入口,以及学生越权后台和跨租户访问拒绝。
|
||||
|
||||
同轮 `npm run perf:postgres:evidence` 运行成功,但本地默认 PostgreSQL 仍有生产前必须调优的 warning:`jit=on`、`statement_timeout=0`、`idle_in_transaction_session_timeout=0`、`lock_timeout=0`。上云后要按 `docs/refactor/postgresql-4c16g-tuning.md` 调整并重启需要重启的参数,再复跑证据采集和压测。
|
||||
|
||||
## 初步结论
|
||||
|
||||
- 本地 Docker 环境下,100 个无停顿 worker 内 P95 仍低于 300ms,可以作为当前代码和索引状态的本地舒适区参考。
|
||||
- 150 个无停顿 worker 仍然 0 错误,但 P95 在不同轮次中接近或超过 300ms,已经能看到本地压力拐点。
|
||||
- 如果未来前端真实埋点显示每名在线学生平均 0.05 到 0.2 req/s,则 700 req/s 理论吞吐约对应 3,500 到 14,000 名活跃在线学生请求量;这只是吞吐换算,不是生产 SLA。
|
||||
- 按最新 897 req/s 只读吞吐粗略折算,如果未来前端真实埋点显示每名在线学生平均 0.05 到 0.2 req/s,则理论请求吞吐约对应 4,485 到 17,940 名活跃在线学生;按更保守的 700 req/s 估算约为 3,500 到 14,000 名。这只是吞吐换算,不是生产 SLA。
|
||||
- 正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、对象存储/CDN、真实前端请求节奏和生产网络下复跑。
|
||||
|
||||
## 后续复测
|
||||
|
||||
Reference in New Issue
Block a user