Locust 多机器分布式测试
Locust 多机器分布式运行
如果单台计算机不足以模拟所需的用户数量,那么 Locust 将支持运行分布在多台计算机上的负载测试。
为此,您可以使用该 --master
标志在主模式下启动 Locust 的一个实例。
这是将运行 Locust 的 Web 界面的实例,您可以在其中开始测试并查看实时统计信息。
主节点本身不会模拟任何用户。取而代之的是,您必须使用该 --slave
标志以及 --master-host
(指定主节点的 IP/hostname)来启动一个或多个从 locust 节点。
常见的设置是在一台独立的机器中运行 master
,在 slave
机器中每个处理器内核运行一个 slave实例 。
常见的设置是在一台机器上运行一个主机,然后在从属机器上每个处理器内核运行一个从属实例。
注意
在运行 Locust 分布式系统时,主计算机和每个从属计算机都必须具有 locust 测试脚本的副本。
建议您启动的模拟用户数量要大于
number of locust classes * number of slaves
这个公式的值 , 把这个值作为运行 Locust 分布式系统时的数量。
否则,由于当前的实现,您可能最终会得到与 Locust 类的weight
属性不对应的 Locust 类分布。
而且,如果孵化率低于从属节点的数量,则孵化将在“突发”中发生,其中所有从属节点将孵化单个用户,然后休眠数秒钟,孵化另一个用户,休眠并重复。
例子
要在主模式下启动 locust
locust -f my_locustfile.py --master
然后在每个从属服务器上(192.168.0.14
用主机的 IP 替换):
locust -f my_locustfile.py --slave --master-host=192.168.0.14
参数说明
--master
设置 Locust 为 master 模式。Web 界面将在这台节点机器上运行。
--slave
将 locust 设置为 slave 模式。
--master-host=X.X.X.X
(可选)与--slave
一起使用,设置 master 的 IP/hostname
(默认为 127.0.0.1)
--master-port=5557
(可选)与 --slave
一起结合使用;
设置 master
中 locust
端口号(默认为 5557)。
请注意, locust 使用指定的端口,同时指定端口号 +1的也会被占用。
因此,如果使用 5557,则 locust 将同时使用端口 5557 和 5558。
--master-bind-host=X.X.X.X
可选与一起使用--master
。确定 master
将绑定到的网络接口。
默认为*
(所有可用接口)。
--master-bind-port=5557
可选项,与 --master
一起结合使用。
确定 master
节点将监听哪个网络端口(默认值为 5557)。
请注意, locust 使用指定的端口,同时指定端口号 +1的也会被占用,因此,如果使用 5557,则 locust 将同时使用端口 5557 和 5558。
--expect-slaves=X
使--no-web
模式启动 master 的时候,master
将在测试之前,等待 X 链接进来;
效果
如下图,启动了一个 master 和两个 slave,由两个 slave 来向被测试系统发送请求。
使用 Docker 运行分布式
在没有 Web UI 的情况下运行 Locust 分布式
查看 Locust 命令行运行
locust 如何提高性能
如果您打算运行大规模负载测试,则可能有兴趣使用 Locust 附带的备用 HTTP 客户端。
您可以在此处了解更多信息: locust 如何提高性能