Skip to content

分布式负载

当单机已无法满足吞吐需求时,可以使用 Locust(Locust)主节点(Master)/工作节点(Worker) 模式。本章对应官方章节 Distributed load generationRunning 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 --master-bind-host --master-bind-port --expect-workers --expect-workers-max-wait
绑定 Master 监听地址,设置等待 X 个 Worker 才开始(默认端口 5557)
Worker
--worker --master-host --master-port --processes
指定 Master 地址/端口(默认 5557),可用 --processes 在单机 fork 多个 Worker
通用
--heartbeat-liveness --heartbeat-interval
对心跳超时/发送间隔做细粒度控制,适配高延迟网络

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. 常见问题

  1. 工作节点 未注册:检查网络、端口 5557/5558 是否放行。
  2. 吞吐有限:确认 工作节点 主机 CPU/网络是否打满,必要时使用 FastHttpUser
  3. 统计不一致:确保所有 工作节点 使用相同版本代码与依赖。

5. 结合 Locust Cloud

  • Locust 官方提供云托管平台,可省去自建 主节点/工作节点 的成本。
  • 通过 locust cloud run --file locustfile.py 上传并触发测试。

6. 示例

若需要更多示例(Docker、Kubernetes、云端),请查阅 Distributed load generation

基于 MIT 许可发布