topfans/backend/reports/final-report.md
2026-06-15 20:10:56 +08:00

5.7 KiB
Raw Blame History

TopFans 压测报告

📋 运行信息

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

🎯 执行摘要

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

🚨 关键问题 (2 个):

  • S2 (浏览资产详情): 错误率 100.00%
  • S4 (资产铸造 (mint)): 错误率 100.00%

场景速览:

  • S1 用户登录 — p99=83ms, err 0.00%
  • 🚨 S2 浏览资产详情 — p99=3ms, err 100.00%
  • 🚨 S4 资产铸造 (mint) — p99=2ms, err 100.00%

📊 总览表

场景 描述 Total Err 5xx P50ms P95ms P99ms Maxms 拐点 RPS 状态
S1 用户登录 8 0 (0.00%) 0 (0.00%) 74 83 83 83
S2 浏览资产详情 8 8 (100.00%) 0 (0.00%) 2 3 3 3 🚨
S4 资产铸造 (mint) 18 18 (100.00%) 0 (0.00%) 1 2 2 2 🚨

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

🔬 跨场景瓶颈分析

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

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

  • S1: 0.08x (83ms)
  • S2: 0.01x (3ms)
  • S4: 0.00x (2ms)

S1 用户登录

📌 测试说明

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

📈 性能指标 vs 健康阈值

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

📍 拐点分析

仅 1 个 stage,未做阶梯测试,无法判断拐点。

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 8 0 0 74 83 83 83

🎯 行动项

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

📉 图表

S1 RPS / P99 / Error


🚨 S2 浏览资产详情

📌 测试说明

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

📈 性能指标 vs 健康阈值

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

📍 拐点分析

仅 1 个 stage,未做阶梯测试,无法判断拐点。

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 8 8 0 2 3 3 3

🎯 行动项

  • 🟡 P1: 错误率 100.00% — 检查 4xx 错误码,看是否 JWT 过期 / 数据缺失

📉 图表

S2 RPS / P99 / Error


🚨 S4 资产铸造 (mint)

📌 测试说明

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

📈 性能指标 vs 健康阈值

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

📍 拐点分析

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

🔢 阶梯结果

Stage TargetRPS Total Err 5xx P50ms P95ms P99ms Maxms 涨幅
1 1 3 3 0 4 9 9 9
2 2 6 6 0 1 2 2 2 -77%
3 3 9 9 0 1 2 2 2 +6%

🎯 行动项

  • 🟡 P1: 错误率 100.00% — 检查 4xx 错误码,看是否 JWT 过期 / 数据缺失

📉 图表

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=S4 --stage=step --step-schedule='1,2,3' \
  --target=http://localhost:8080 \
  --monitor=off \