forked from wangziqi/gongxue-base
docs: update backend capacity evidence
This commit is contained in:
@@ -53,7 +53,7 @@
|
|||||||
| 对象存储/资料安全 | √ 可联调,待生产 AV/CDN | OSS/COS/Supabase Storage 签名、上传确认、短签名预览下载、水印 traceId、复检和安全扫描地基已完成 |
|
| 对象存储/资料安全 | √ 可联调,待生产 AV/CDN | OSS/COS/Supabase Storage 签名、上传确认、短签名预览下载、水印 traceId、复检和安全扫描地基已完成 |
|
||||||
| PocketBase 真实数据迁移 | √ 本地跑通,待人工复核 blocker | SQLite 导出、标准化导入、校验和抽样脚本已跑通;正式切换前处理缺用户订单和缺归属手册章节 |
|
| PocketBase 真实数据迁移 | √ 本地跑通,待人工复核 blocker | SQLite 导出、标准化导入、校验和抽样脚本已跑通;正式切换前处理缺用户订单和缺归属手册章节 |
|
||||||
| Taro H5 三端前端 | √ 第一版可构建 | 学生端、租户后台、平台后台均有真实 API 页面;已补 H5 `index.html` 模板和发布产物守卫;后续继续补小程序兼容、视觉精修、状态管理、包体优化和端到端测试 |
|
| Taro H5 三端前端 | √ 第一版可构建 | 学生端、租户后台、平台后台均有真实 API 页面;已补 H5 `index.html` 模板和发布产物守卫;后续继续补小程序兼容、视觉精修、状态管理、包体优化和端到端测试 |
|
||||||
| 生产安全/压测交付 | △ 本地真实数据压测已跑,云端待复测 | 本地 Docker/Supabase 已完成真实迁移数据 30/50/100/150 并发混合读写压测;已补 PostgreSQL 调参证据脚本和上线前角色旅程烟测;上云后仍需执行生产 readiness、远程 Auth/RLS、4c16g 压测、PostgreSQL 调优和上线证据门禁。`@codex-security` 只有在 Codex 环境暴露扫描工具时才能标记完成 |
|
| 生产安全/压测交付 | △ 本地真实数据压测已跑,云端待复测 | 本地 Docker/Supabase 已完成真实迁移数据 30/50/100/150 并发只读和混合读写压测;已补 PostgreSQL 调参证据脚本和上线前角色旅程烟测。最近一次只读上线门禁和 50/100/150 混合读写均 0 错误;上云后仍需执行生产 readiness、远程 Auth/RLS、4c16g 压测、PostgreSQL 调优和上线证据门禁。`@codex-security` 只有在 Codex 环境暴露扫描工具时才能标记完成 |
|
||||||
|
|
||||||
更完整的进度看这些文档:
|
更完整的进度看这些文档:
|
||||||
|
|
||||||
@@ -617,6 +617,10 @@ node scripts\taro-h5-release-guardrails-test.js --require-dist --require-runtime
|
|||||||
| 50 | 60s | 10% | 40,065 | 0.00% | 658.11 req/s | 151.63 ms | 188.07 ms |
|
| 50 | 60s | 10% | 40,065 | 0.00% | 658.11 req/s | 151.63 ms | 188.07 ms |
|
||||||
| 100 | 60s | 8% | 37,290 | 0.00% | 610.57 req/s | 303.93 ms | 376.47 ms |
|
| 100 | 60s | 8% | 37,290 | 0.00% | 610.57 req/s | 303.93 ms | 376.47 ms |
|
||||||
| 150 | 60s | 6% | 33,952 | 0.00% | 555.08 req/s | 490.53 ms | 639.05 ms |
|
| 150 | 60s | 6% | 33,952 | 0.00% | 555.08 req/s | 490.53 ms | 639.05 ms |
|
||||||
|
| 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 |
|
||||||
|
|
||||||
只读上线门禁继续要求 `includeWrites=false`;混合读写报告需要显式使用 `--allow-writes` 做人工容量观察,例如:
|
只读上线门禁继续要求 `includeWrites=false`;混合读写报告需要显式使用 `--allow-writes` 做人工容量观察,例如:
|
||||||
|
|
||||||
@@ -626,7 +630,7 @@ npm run perf:summary -- --input docs/refactor/performance-reports/api-benchmark-
|
|||||||
|
|
||||||
使用 `--allow-writes` 时会输出 `capacityObservation`,不输出 `launchGateCheck`,不能把写入场景误填成生产上线门禁的只读证据。
|
使用 `--allow-writes` 时会输出 `capacityObservation`,不输出 `launchGateCheck`,不能把写入场景误填成生产上线门禁的只读证据。
|
||||||
|
|
||||||
本地结论:当前 Docker Desktop 分配 20 CPU、约 62.7GB 内存,高于常见 4 核 16G 云服务器,不能直接作为生产 SLA。2026-07-01 最新复核中,50 worker/60 秒/10% 写入为 40,065 请求、0 错误、658.11 req/s、P95 151.63ms;100 worker/60 秒/8% 写入为 37,290 请求、0 错误、610.57 req/s、P95 303.93ms,已接近舒适区上沿;150 worker/60 秒/6% 写入为 33,952 请求、0 错误、555.08 req/s、P95 490.53ms,属于压力区。按单学生 0.05 到 0.2 req/s 的页面节奏粗略折算,当前本地舒适观察区间约对应 3,000 到 12,000 名活跃在线学生的请求吞吐。正式对外容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、生产对象存储/CDN 和真实前端请求节奏下复跑。脱敏摘要和剩余功能清单见:
|
本地结论:当前 Docker Desktop 分配 20 CPU、约 62.7GB 内存,高于常见 4 核 16G 云服务器,不能直接作为生产 SLA。2026-07-01 03:12 最新复核中,30 worker/120 秒只读上线门禁为 60,326 请求、0 错误、499.27 req/s、P95 151.29ms;50 worker/60 秒/10% 写入为 35,608 请求、0 错误、584.18 req/s、P95 174.26ms;100 worker/60 秒/8% 写入为 33,843 请求、0 错误、554.42 req/s、P95 326.21ms,已接近舒适区上沿;150 worker/60 秒/6% 写入为 32,364 请求、0 错误、528.81 req/s、P95 490.38ms,属于压力区。按单学生 0.05 到 0.2 req/s 的页面节奏粗略折算,当前本地舒适观察区间约对应 2,700 到 11,600 名活跃在线学生的请求吞吐。正式对外容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、生产对象存储/CDN 和真实前端请求节奏下复跑。脱敏摘要和剩余功能清单见:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
docs/refactor/performance-benchmark-summary-20260630.md
|
docs/refactor/performance-benchmark-summary-20260630.md
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
## 仍需完成
|
## 仍需完成
|
||||||
|
|
||||||
|
当前“仍需完成”不是旧题库核心功能缺口。刷题、背单词、知识手册、分数线、个人中心、会员/订单、错题/收藏、资料/视频、租户后台、平台 SaaS、公共题库、销售/CRM/分佣等后端主链路已经具备前端联调条件。剩余项主要是上云生产环境、真实三方 provider、真实旧数据人工复核、运维安全和体验增强。
|
||||||
|
|
||||||
### 上云生产前 P0
|
### 上云生产前 P0
|
||||||
|
|
||||||
1. 真实云端 Auth/JWKS、RLS 和生产配置验收:在预生产/生产执行 `readiness:production`、`readiness:production:db`、`smoke:auth:remote`、`test:rls` 并留档,生产关闭 `x-user-id` 和平台本地 key 兼容入口。
|
1. 真实云端 Auth/JWKS、RLS 和生产配置验收:在预生产/生产执行 `readiness:production`、`readiness:production:db`、`smoke:auth:remote`、`test:rls` 并留档,生产关闭 `x-user-id` 和平台本地 key 兼容入口。
|
||||||
@@ -48,23 +50,25 @@
|
|||||||
|
|
||||||
| 场景 | 并发 worker | 时长 | 刷题写入比例 | 请求数 | 错误率 | 吞吐 | P95 | P99 | 结论 |
|
| 场景 | 并发 worker | 时长 | 刷题写入比例 | 请求数 | 错误率 | 吞吐 | P95 | P99 | 结论 |
|
||||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||||||
| 只读上线门禁 | 30 | 120s | 0% | 64,382 | 0.00% | 532.97 req/s | 140.64 ms | 193.69 ms | 通过 |
|
| 只读上线门禁 | 30 | 120s | 0% | 60,326 | 0.00% | 499.27 req/s | 151.29 ms | 214.61 ms | 通过 |
|
||||||
| 混合读写 | 50 | 60s | 10% | 40,065 | 0.00% | 658.11 req/s | 151.63 ms | 188.07 ms | 舒适 |
|
| 混合读写 | 50 | 60s | 10% | 35,608 | 0.00% | 584.18 req/s | 174.26 ms | 224.04 ms | 舒适 |
|
||||||
| 混合读写 | 100 | 60s | 8% | 37,290 | 0.00% | 610.57 req/s | 303.93 ms | 376.47 ms | 接近舒适区上沿 |
|
| 混合读写 | 100 | 60s | 8% | 33,843 | 0.00% | 554.42 req/s | 326.21 ms | 422.33 ms | 接近舒适区上沿 |
|
||||||
| 混合读写 | 150 | 60s | 6% | 33,952 | 0.00% | 555.08 req/s | 490.53 ms | 639.05 ms | 压力区 |
|
| 混合读写 | 150 | 60s | 6% | 32,364 | 0.00% | 528.81 req/s | 490.38 ms | 662.42 ms | 压力区 |
|
||||||
|
|
||||||
混合读写包含真实刷题闭环:创建练习 session、拉取 session detail、提交答案、交卷、读取报告。
|
混合读写包含真实刷题闭环:创建练习 session、拉取 session detail、提交答案、交卷、读取报告。
|
||||||
|
|
||||||
|
同轮 `npm run smoke:launch-persona` 已通过,覆盖普通学生 SVIP 后刷题、收藏、错题复习入口,租户管理员 dashboard/主题/学生/销售转化入口,平台管理员租户/套餐/审计入口,以及学生越权后台和跨租户访问拒绝。
|
||||||
|
|
||||||
### 在线人数折算
|
### 在线人数折算
|
||||||
|
|
||||||
压测 worker 是无停顿请求流,不等于真实在线学生。刷题学生会读题、思考、翻页和等待网络,前端完成后还需要用真实埋点计算“单个活跃学生平均 RPS”。
|
压测 worker 是无停顿请求流,不等于真实在线学生。刷题学生会读题、思考、翻页和等待网络,前端完成后还需要用真实埋点计算“单个活跃学生平均 RPS”。
|
||||||
|
|
||||||
按目前常见页面节奏先用 `0.05 到 0.2 req/s/人` 粗略折算:
|
按目前常见页面节奏先用 `0.05 到 0.2 req/s/人` 粗略折算:
|
||||||
|
|
||||||
- 50 worker 舒适场景 658 req/s,约等于 3,290 到 13,160 名活跃在线学生的请求吞吐。
|
- 50 worker 舒适场景 584 req/s,约等于 2,920 到 11,680 名活跃在线学生的请求吞吐。
|
||||||
- 100 worker 上沿场景 610 req/s,约等于 3,050 到 12,210 名活跃在线学生的请求吞吐。
|
- 100 worker 上沿场景 554 req/s,约等于 2,770 到 11,080 名活跃在线学生的请求吞吐。
|
||||||
- 150 worker 压力场景 555 req/s,约等于 2,775 到 11,100 名活跃在线学生的请求吞吐。
|
- 150 worker 压力场景 529 req/s,约等于 2,645 到 10,580 名活跃在线学生的请求吞吐。
|
||||||
|
|
||||||
当前本地结论:在 20 CPU/62.7GB Docker Desktop 环境下,后端真实刷题读写链路的舒适观察区间约为 600 到 660 req/s,折算约 3,000 到 12,000 名活跃在线学生;150 worker 仍 0 错误但 P95 接近 500ms,视为压力区,不建议作为生产承诺。
|
当前本地结论:在 20 CPU/62.7GB Docker Desktop 环境下,后端真实刷题读写链路的舒适观察区间约为 550 到 585 req/s,折算约 2,700 到 11,600 名活跃在线学生;150 worker 仍 0 错误但 P95 接近 500ms,视为压力区,不建议作为生产承诺。
|
||||||
|
|
||||||
正式对外容量必须等 4 核 16G 云服务器部署后复跑。保守规划时,生产首版建议先按本地折算值的 30% 到 50% 做容量承诺,等云端压测、CDN、对象存储和真实前端埋点完成后再上调。
|
正式对外容量必须等 4 核 16G 云服务器部署后复跑。保守规划时,生产首版建议先按本地折算值的 30% 到 50% 做容量承诺,等云端压测、CDN、对象存储和真实前端埋点完成后再上调。
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
- 已补 `npm run launch:gate` 生产上线证据门禁和 `docs/refactor/production-launch-evidence.template.json` 模板;最终切换前必须把 readiness、远程 Auth、RLS、生产 dry-run、导入校验、`pb:import:sample` 业务抽样、真实数据 API 读路径压测、API/worker/Taro、运行时审计、`@codex-security`、备份/回滚/真实抽样/生产 provider 等证据填入本地 `production-launch-evidence.json` 并通过门禁。当前 Codex 环境未暴露可调用的 `@codex-security` 扫描工具时,该项只能标为待补,不能伪造完成。
|
- 已补 `npm run launch:gate` 生产上线证据门禁和 `docs/refactor/production-launch-evidence.template.json` 模板;最终切换前必须把 readiness、远程 Auth、RLS、生产 dry-run、导入校验、`pb:import:sample` 业务抽样、真实数据 API 读路径压测、API/worker/Taro、运行时审计、`@codex-security`、备份/回滚/真实抽样/生产 provider 等证据填入本地 `production-launch-evidence.json` 并通过门禁。当前 Codex 环境未暴露可调用的 `@codex-security` 扫描工具时,该项只能标为待补,不能伪造完成。
|
||||||
- 确认数据库迁移流程、备份恢复、日志、告警。
|
- 确认数据库迁移流程、备份恢复、日志、告警。
|
||||||
- 准备 API 容器部署和 Supabase 云端/自托管连接方案。
|
- 准备 API 容器部署和 Supabase 云端/自托管连接方案。
|
||||||
- 已补 `npm run perf:api:local`、`npm run perf:summary`、`npm run perf:postgres:evidence`、`npm run smoke:launch-persona`、`npm run smoke:taro:h5`、`npm run smoke:taro:h5:interaction`、`node scripts/taro-api-contract-test.js`、`node scripts/taro-persona-contract-test.js` 和 `docs/refactor/performance-benchmark-runbook.md`,可在本地或云端对真实迁移数据做只读门禁、混合读写容量观察、PostgreSQL 调参证据、三类后端角色旅程烟测、三类 Taro 前端角色旅程契约、H5 发布目录启动烟测、真实浏览器关键点击烟测和前端 API 契约检查。2026-07-01 最新本地真实迁移库只读 30 worker/120s 为 64,382 请求、0 错误、532.97 req/s、P95 140.64ms、P99 193.69ms;混合读写 50 worker/60s/10% 写入为 40,065 请求、0 错误、658.11 req/s、P95 151.63ms、P99 188.07ms;100 worker/60s/8% 写入为 37,290 请求、0 错误、610.57 req/s、P95 303.93ms、P99 376.47ms;150 worker/60s/6% 写入为 33,952 请求、0 错误、555.08 req/s、P95 490.53ms、P99 639.05ms。当前 Docker Desktop 给了 20 CPU/约 62.7GB 内存,舒适观察区暂按 50 到 100 个无停顿 worker 估算,150 worker 已是压力区;按单学生 0.05 到 0.2 req/s 粗略折算约为 3,000 到 12,000 名活跃在线学生的本机吞吐观察区间,正式容量仍以上云 4 核 16G 复测为准。
|
- 已补 `npm run perf:api:local`、`npm run perf:summary`、`npm run perf:postgres:evidence`、`npm run smoke:launch-persona`、`npm run smoke:taro:h5`、`npm run smoke:taro:h5:interaction`、`node scripts/taro-api-contract-test.js`、`node scripts/taro-persona-contract-test.js` 和 `docs/refactor/performance-benchmark-runbook.md`,可在本地或云端对真实迁移数据做只读门禁、混合读写容量观察、PostgreSQL 调参证据、三类后端角色旅程烟测、三类 Taro 前端角色旅程契约、H5 发布目录启动烟测、真实浏览器关键点击烟测和前端 API 契约检查。2026-07-01 03:12 最新本地真实迁移库只读 30 worker/120s 为 60,326 请求、0 错误、499.27 req/s、P95 151.29ms、P99 214.61ms;混合读写 50 worker/60s/10% 写入为 35,608 请求、0 错误、584.18 req/s、P95 174.26ms、P99 224.04ms;100 worker/60s/8% 写入为 33,843 请求、0 错误、554.42 req/s、P95 326.21ms、P99 422.33ms;150 worker/60s/6% 写入为 32,364 请求、0 错误、528.81 req/s、P95 490.38ms、P99 662.42ms。同轮 `npm run smoke:launch-persona` 已通过,覆盖学生 SVIP 刷题、收藏、错题复习入口、租户后台关键入口、平台后台关键入口和越权拒绝。当前 Docker Desktop 给了 20 CPU/约 62.7GB 内存,舒适观察区暂按 50 到 100 个无停顿 worker 估算,150 worker 已是压力区;按单学生 0.05 到 0.2 req/s 粗略折算约为 2,700 到 11,600 名活跃在线学生的本机吞吐观察区间,正式容量仍以上云 4 核 16G 复测为准。
|
||||||
- 当前本地 PostgreSQL evidence 仍提示 `jit=on`、`statement_timeout=0`、`idle_in_transaction_session_timeout=0`、`lock_timeout=0`;上云后必须按 `docs/refactor/postgresql-4c16g-tuning.md` 调整参数并复跑 evidence。4 核 16G 正式容量报告需上云后按 6/30/50/100 阶梯并发复跑并归档到本地上线证据。
|
- 当前本地 PostgreSQL evidence 仍提示 `jit=on`、`statement_timeout=0`、`idle_in_transaction_session_timeout=0`、`lock_timeout=0`;上云后必须按 `docs/refactor/postgresql-4c16g-tuning.md` 调整参数并复跑 evidence。4 核 16G 正式容量报告需上云后按 6/30/50/100 阶梯并发复跑并归档到本地上线证据。
|
||||||
- 本轮剩余功能和容量复核已经整理到 `docs/refactor/backend-open-items-and-capacity-20260701.md`。后续不要再把学生头像上传或默认排行榜当作待办;头像只保留男女预设,排行榜仅作为租户显式开启后的活动能力。
|
- 本轮剩余功能和容量复核已经整理到 `docs/refactor/backend-open-items-and-capacity-20260701.md`。后续不要再把学生头像上传或默认排行榜当作待办;头像只保留男女预设,排行榜仅作为租户显式开启后的活动能力。
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
|
|
||||||
同轮 `npm run perf:summary -- --allow-writes` 已分别通过 100 worker `P95 <= 300ms/P99 <= 800ms` 和 150 worker `P95 <= 500ms/P99 <= 1200ms` 的容量观察阈值。
|
同轮 `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 混合读写阶梯。排行榜仍未纳入默认负载,头像相关链路不参与压测,因为学生头像产品策略已固定为男女预设头像。
|
本轮按用户最新要求重新确认本地 Supabase 数据量、Docker Desktop 资源,并复跑只读上线门禁与 50/100/150 混合读写阶梯。排行榜仍未纳入默认负载,头像相关链路不参与压测,因为学生头像产品策略已固定为男女预设头像。
|
||||||
|
|
||||||
@@ -97,10 +97,28 @@
|
|||||||
- 30 worker 只读门禁通过,满足 `errors=0`、`errorRate<=0.001`、`p95<=300ms`、`p99<=800ms`、`duration>=120s`。
|
- 30 worker 只读门禁通过,满足 `errors=0`、`errorRate<=0.001`、`p95<=300ms`、`p99<=800ms`、`duration>=120s`。
|
||||||
- 50/100/150 worker 混合读写均为 0 错误;100 worker 已接近 `P95=300ms` 舒适线,150 worker 只作为压力上沿观察。
|
- 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,已经是压力区。
|
- 本地 Docker 环境下,50 worker 混合读写 P95 约 174.26ms,100 worker 混合读写 P95 约 326.21ms,100 worker 已接近当前本机舒适区上沿;150 worker 仍然 0 错误,但 P95 约 490.38ms,已经是压力区。
|
||||||
- 按最新 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。
|
- 按最新 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 给了 20 CPU 和约 62.7GB 内存,生产如果使用 4 核 16G 单机,首版容量承诺建议先按本地折算值的 30% 到 50% 保守规划,再以云端复测和真实前端埋点上调。
|
||||||
- 正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、对象存储/CDN、真实前端请求节奏和生产网络下复跑。
|
- 正式容量承诺必须在目标 4 核 16G 云服务器、生产 PostgreSQL 参数、对象存储/CDN、真实前端请求节奏和生产网络下复跑。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user