3.3 KiB
3.3 KiB
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。