# 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 已生成: ```text /tmp/allrich-machine-b-runtime-p2p-20260927-01.zip SHA-256: 479f119e7d01e1829c7262cace282c72a5f53ad8e7f5128abc2ade75d046db64 ``` 机器 B 必须先安全获取该文件,再执行: ```bash 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`](../../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`。