Files
im_server/docs/test/IM-allrich双机压测执行记录-20260927.md
T

3.3 KiB
Raw Blame History

IM allrich 双机压测执行记录

日期:2026-09-27

1. 测试环境

项目 值
企业码 allrich
企业名称 大家一起发
HTTP API https://api.118im.com
WebSocket wss://api.118im.com/v0/channels
API Key 通过 IM_API_KEY 注入,不写入 Git
测试验证码 123456,仅测试环境使用
测试密码 通过 IM_LOAD_PASSWORD 注入,不写入 Git
机器 A 当前开发机,192.168.1.135
机器 B 另一台压测机,运行 -machine b

config.json、.env.test、manifest.json 均被 Git 忽略。manifest 含 2000 个账号 Token,只能通过受控内网传输。

2. 数据准备结果

2026-09-27 已完成并通过硬校验:

  • 账号:2000,机器 A/B 各 1000。
  • 用户名:lta0001-lta1000、ltb0001-ltb1000。
  • 测试手机号:A 使用配置前缀加 0001-1000,B 使用配置前缀加 5001-6000。
  • 好友关系:1000 对,序号相同的 A/B 用户互为好友。
  • P2P Topic:1000 个,全部写入 manifest。
  • 测试群:1 个,成员数 2000,Topic 仅在 manifest 中保存,文档只记录哈希 98372d54fe65。

准备过程观察到注册和好友同意接口存在少量瞬时 500/404,100 人群邀请批次存在 502、超过 2 分钟及 IDEMPOTENCY_IN_PROGRESS。工具使用相同业务幂等键和退避重试后全部恢复;这些属于准备链路现象,不计入正式消息到达率。

3. 当前运行状态

项目 值
Run ID p2p-20260927-01
场景 p2p
Coordinator http://192.168.1.135:8090
机器 A agent 1000/1000 READY,意外断连 0
机器 B agent 等待启动
远端 dev 6d17154 或更新版本

机器 A 的 coordinator 和 agent A 已运行。机器 B 启动并达到 1000 READY 后,coordinator 自动下发统一开始时间,无需人工再次触发。

4. 机器 B 运行文件

机器 A 已生成:

/tmp/allrich-machine-b-runtime-p2p-20260927-01.zip
SHA-256: 479f119e7d01e1829c7262cace282c72a5f53ad8e7f5128abc2ade75d046db64

机器 B 必须先安全获取该文件,再执行:

git switch dev
git pull --ff-only origin dev

# 运行包不在 Git 中,必须从机器 A 单独复制
scp youshunlai@192.168.1.135:/tmp/allrich-machine-b-runtime-p2p-20260927-01.zip /tmp/
shasum -a 256 /tmp/allrich-machine-b-runtime-p2p-20260927-01.zip

unzip -o /tmp/allrich-machine-b-runtime-p2p-20260927-01.zip \
  -d loadtest/im-pressure
chmod 600 loadtest/im-pressure/.env.test \
  loadtest/im-pressure/config.json \
  loadtest/im-pressure/manifest.json

set -a
source loadtest/im-pressure/.env.test
set +a
cd loadtest/im-pressure
go build -o im-pressure .

./im-pressure agent \
  -config config.json \
  -manifest manifest.json \
  -machine b \
  -coordinator http://192.168.1.135:8090 \
  -metrics-listen :9105 \
  -output results/p2p-20260927-01/agent-b-summary.json

完整 B 机操作和故障处理见 loadtest/im-pressure/MACHINE-B.md。

5. 多 Pod 口径说明

当前 A/B 配置均使用 wss://api.118im.com/v0/channels 公共入口。该配置验证 LB 实际分配下的多 Pod 能力,但不能保证两台压测机固定落到不同 Pod。若验收要求强制指定不同 Pod,需要提供两个独立 WS 定向入口,分别配置到 endpoints.a 和 endpoints.b。