分布式负载
当单机已无法满足吞吐需求时,可以使用 Locust(Locust) 的 主节点(Master)/工作节点(Worker) 模式。本章对应官方章节 Distributed load generation、Running in Docker。
1. 架构回顾
- 主节点:负责协调、聚合统计、提供 Web UI(Web UI)。
- 工作节点:执行任务,周期性向 主节点 汇报状态。
bash
# 终端 1:Master
$ locust -f locustfile.py --master --expect-workers 4 --web-host 0.0.0.0
# 终端 2~5:Worker
$ locust -f locustfile.py --worker --master-host <Master IP>2. CLI 选项
以下参数语法对齐官方文档 Distributed load generation,使用占位符提示需要填入的值。
| 角色 | 关键参数 | 说明 |
|---|---|---|
| Master | 绑定 Master 监听地址,设置等待 X 个 Worker 才开始(默认端口 5557) | |
| Worker | 指定 Master 地址/端口(默认 5557),可用 --processes 在单机 fork 多个 Worker | |
| 通用 | 对心跳超时/发送间隔做细粒度控制,适配高延迟网络 |
3. Docker / Kubernetes
bash
$ docker run --rm -it --network locust-net \
-v $PWD:/mnt/locust locustio/locust:2.45.5 \
-f /mnt/locust/locustfile.py --worker --master-host master- 使用
docker compose或 Helm Chart(参见官方 Kubernetes Operator)。 - 将脚本与依赖挂载到容器内,保持与本地一致。
4. 常见问题
- 工作节点 未注册:检查网络、端口 5557/5558 是否放行。
- 吞吐有限:确认 工作节点 主机 CPU/网络是否打满,必要时使用
FastHttpUser。 - 统计不一致:确保所有 工作节点 使用相同版本代码与依赖。
5. 结合 Locust Cloud
- Locust 官方提供云托管平台,可省去自建 主节点/工作节点 的成本。
- 通过
locust cloud run --file locustfile.py上传并触发测试。
6. 示例
若需要更多示例(Docker、Kubernetes、云端),请查阅 Distributed load generation。