Locust 分布式压力测试

作者:Gakki

1. Locust 分布式场景

  • Locust 分布式场景分为两种:
    1. 单台机器设置 Master 和 Worker
    2. 多台机器时,一台调度机( Master )和其他机器设置执行机( Worker)

注: Master 主要负责分发任务和下达指令,Worker主要负责执行任务

2. 单机分布式压测

  • 启动方式: Locust 中使用主从模式启动多进程。先启动 Master ,然后再逐一启动若干个 Worker,从机负责执行任务。

注:单机分布式压测需要多核处理器并且 Worker 的节点数要小于等于本机的处理器数量

  • 配置 Locust 运行方式的最直接方法是通过命令行参数:

    • 主机运行命令:locust -f deemo/data_archiving.py --master (GUI模式)

      主机运行命令

    • 从机运行命令:locust -f deemo/data_archiving.py --worker (GUI模式)。测试人员根据自身压测情况,启动多个会话窗口,然后输入从机运行命令即可

      从机运行命令

  • 可以通过命令行设置的参数大多数也可以通过环境变量来设置。例如:

    • 配置文件:可以通过命令行配置各项参数,也可以使用配置文件 config file 进行配置。Locust 默认会查找 ~/.locust.conf 和 ./locust.conf 作为配置文件,也可以使用 --config 参数指定文件。
    • 使用 --config 参数指定文件:
      • 在 locust.file 同目录下创建demo.conf配置文件,文件中填写相应的配置参数。
      # demo.conf 示例:
      locustfile = ./data_archiving.py
      headless = true
      master = true
      
      • 主机启动参数: locust -f --config=demo.conf (GUI模式)
      • 从机启动参数: locust -f deemo/data_archiving.py --worker (GUI模式)

3. 多机分布式压测

  • 一台机器作为调度机 Msater ,其他机器作为执行机 Worker, 启动的时候,需要指定主节点的 IP/主机名,如:--worker --master-host

  • 主机启动命令: locust -f deemo/data_archiving.py --master (GUI模式)

    主机启动命令[图片上传中...(QQ截图20210923183822.png-f826f0-1632393986348-0)]

  • 从机启动命令: locust -f deemo/data_archiving.py --worker --master-host=47.108.*.* (GUI模式)

    从机启动命令

4. 其他

  • 后台执行任务,nohup command &
nohup locust -f deemo/data_archiving.py  --master &
nohup locust -f deemo/data_archiving.py  --worker &
  • demo.conf 示例:
locustfile = ./data_archiving.py
headless = true
master = true
expect-workers = 8
users = 70
spawn-rate = 30
run-time = 5m

你可能感兴趣的:(Locust 分布式压力测试)