作者:Gakki
1. Locust 分布式场景
- Locust 分布式场景分为两种:
- 单台机器设置 Master 和 Worker
- 多台机器时,一台调度机( 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模式)
-
从机启动命令:
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