topfans/backend/reports/final-report.md
2026-06-15 21:12:59 +08:00

5.8 KiB
Raw Blame History

TopFans 压测报告

📋 运行信息

生成时间 2026-06-15 21:06:41 CST
压测开始 2026-06-15 21:05:10 CST
压测结束 2026-06-15 21:05:38 CST
总耗时 27s
目标地址 http://localhost:8080
测试场景 S1, S2, S4
阶梯模式 step (1,2,3)
JWT 签名密钥 topfans-*** (前 8 位)
监控模式 off
总请求数 54
总错误数 0 (0.00%)
5xx 数 0 (0.00%)

🎯 执行摘要

总览: 3 健康 / ⚠️ 0 警告 / 🚨 0 严重 (共 3)

🎉 所有场景通过健康阈值,系统可承载预期负载。

场景速览:

  • S1 用户登录 — p99=96ms, err 0.00%
  • S2 浏览资产详情 — p99=14ms, err 0.00%
  • S4 资产铸造 (mint) — p99=14ms, err 0.00%

📊 总览表

场景 描述 Total Err 5xx P50ms P95ms P99ms Maxms 拐点 RPS 状态
S1 用户登录 18 0 (0.00%) 0 (0.00%) 86 96 96 96
S2 浏览资产详情 18 0 (0.00%) 0 (0.00%) 10 14 14 14
S4 资产铸造 (mint) 18 0 (0.00%) 0 (0.00%) 7 14 14 14

说明: Err 包含 4xx + 5xx,5xx 是子集。错误率 = Err / Total。

🔬 跨场景瓶颈分析

无明显瓶颈,所有场景 P99 都在阈值内。

P99 / 阈值 比率 (从高到低):

  • S1: 0.10x (96ms)
  • S2: 0.03x (14ms)
  • S4: 0.01x (14ms)

S1 用户登录

📌 测试说明

API POST /api/v1/auth/login
负载类型 ✏️ 轻写
业务说明 用户身份认证,签发 JWT
影响范围 🔴 所有用户必经路径,失败 = 用户进不来

📈 性能指标 vs 健康阈值

指标 实测 阈值 判定
P50ms 86 ≤100
P95ms 96 ≤300
P99ms 96 ≤1000
Maxms 96 参考
错误率 0.00% ≤1.00%
5xx 率 0.00% ≤0.10%

📍 拐点分析

拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=96ms。

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 3 0 0 94 98 98 98
2 2 6 0 0 87 89 89 89 -9%
3 3 9 0 0 86 96 96 96 +7%

🎯 行动项

无需行动项 — 所有指标在阈值内。

📉 图表

S1 RPS / P99 / Error


S2 浏览资产详情

📌 测试说明

API GET /api/v1/assets/{id}
负载类型 📖
业务说明 高频读路径,典型缓存命中场景
影响范围 🟢 单用户最高频操作,影响页面加载体验

📈 性能指标 vs 健康阈值

指标 实测 阈值 判定
P50ms 10 ≤50
P95ms 14 ≤150
P99ms 14 ≤500
Maxms 14 参考
错误率 0.00% ≤1.00%
5xx 率 0.00% ≤0.10%

📍 拐点分析

拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=14ms。

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 3 0 0 14 31 31 31
2 2 6 0 0 9 12 12 12 -61%
3 3 9 0 0 10 14 14 14 +13%

🎯 行动项

无需行动项 — 所有指标在阈值内。

📉 图表

S2 RPS / P99 / Error


S4 资产铸造 (mint)

📌 测试说明

API POST /api/v1/assets/mints/precreate
负载类型 🛠️ 重写
业务说明 写重路径:OSS 上传 + 签名 + 事务落库
影响范围 🟡 核心交易,影响创作者产出节奏

📈 性能指标 vs 健康阈值

指标 实测 阈值 判定
P50ms 7 ≤300
P95ms 14 ≤800
P99ms 14 ≤2000
Maxms 14 参考
错误率 0.00% ≤1.00%
5xx 率 0.00% ≤0.10%

📍 拐点分析

拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=14ms。

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 3 0 0 12 15 15 15
2 2 6 0 0 7 12 12 12 -18%
3 3 9 0 0 7 14 14 14 +14%

🎯 行动项

无需行动项 — 所有指标在阈值内。

📉 图表

S4 RPS / P99 / Error


📎 附录

健康阈值说明

  • P50/P95/P99: 百分位延迟 (毫秒),值越小越好
  • 错误率: 4xx+5xx 请求占比,健康 < 1%
  • 5xx 率: 服务端错误率,健康 < 0.1%
  • 拐点: 阶梯测试中,p99 相对前一 stage 涨幅 > 50% 的第一个 stage

文件清单

reports/
├── final-report.md  (本文件)
├── baseline.csv     (Excel 可打开的汇总)
├── s1.json
├── s1.png
├── s2.json
├── s2.png
├── s3.json
├── s3.png
├── s4.json
├── s4.png
├── s5.json
├── s5.png
├── s6.json
├── s6.png
├── s7.json
├── s7.png

如何复现

cd /opt/topfans/loadtest
./loadgen --cmd=run --scenarios=S1,S2,S4 --stage=step --step-schedule='1,2,3' \
  --target=http://localhost:8080 \
  --monitor=off \