Skip to content

XHIM 服务端容量测试

k6_smoke.js 是可复现的 HTTP 基线,不代表任何公开容量数字。运行前由管理 API 准备测试账号和 Token,然后:

bash
k6 run \
  -e XHIM_BASE_URL=https://im-load.example.com \
  -e XHIM_TOKEN_FILE=/secure/path/tokens.txt \
  -e XHIM_CONVERSATION_ID=load-conversation \
  -e XHIM_VUS=100 \
  -e XHIM_DURATION=60m \
  -e XHIM_SUMMARY_PATH=/secure/evidence/target-summary.json \
  server/load/k6_smoke.js

tokens.txt 每行使用 token|account_id|user_id,且只允许压测租户,不得使用 生产 Token。测试 报告必须记录服务版本/commit、实例和数据库规格、网络拓扑、VU、消息大小、 持续时间、p50/p95/p99、错误率、数据库/连接池/CPU/内存/磁盘与瓶颈。

正式门禁参数在 capacity-plan.json,证据结构在 capacity-evidence.template.json。把 k6 Summary、Grafana/Prometheus 导出、 故障注入日志等保存到容量 JSON 同级的 capacity-observability/,并在 observability_artifacts 中逐项填写相对路径和小写 SHA-256。外部 URL、 符号链接、路径穿越、缺失文件或 Hash 不一致都会被正式门禁拒绝;通过后这些 文件会安全复制到最终发行证据根。在正式容量报告中依次执行:

  1. 15 分钟校准;
  2. 目标峰值 60 分钟;
  3. 2 倍峰值 30 分钟;
  4. 目标负载 24 小时;
  5. WebSocket 断连风暴、PostgreSQL 切换、Push/对象/RTC Provider 故障注入。

独立预检示例:

bash
scripts/reporting/verify_capacity_report.py \
  server/load/capacity-plan.json \
  /secure/load-run/capacity-evidence.json \
  --version 1.0.0 --commit <完整 Git Commit> \
  --artifact-root /secure/load-run

XHIM 客户端 SDK 与服务端文档