zoukankan      html  css  js  c++  java
  • 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

    1. locust -f my_locustfile.py --master

    然后在每个从属服务器上(192.168.0.14 用主机的 IP 替换):

    1. 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 来向被测试系统发送请求。

    https://a.axihe.com/img/tools/locust/webui-splash-screenshot.png

    使用 Docker 运行分布式

    查看 Docker 运行 Locust

    在没有 Web UI 的情况下运行 Locust 分布式

    查看 Locust 命令行运行

    locust 如何提高性能

    如果您打算运行大规模负载测试,则可能有兴趣使用 Locust 附带的备用 HTTP 客户端。

    您可以在此处了解更多信息: locust 如何提高性能

  • 相关阅读:
    TensorFlow_CNN_MNIST遇到的问题
    TensorFlow_CNN_MNIST问题
    TensorFlow_CNN内tf.nn.max_pool和tf.layers.max_pooling2d参数
    TensorFlow_CNN内tf.nn.conv2d和tf.layers.conv2d参数
    mysql 更新语句中加判断条件
    数据库 数据去重并取id最大的数据sql
    elasticsearch------java操作之QueryBuilders构建搜索Query
    Elasticsearch java api 基本搜索部分详解
    java 连接 elasticsearch 报错java.lang.NoClassDefFoundError: org/apache/http/auth/Credentials 解决
    java 获取文件内所有文件名
  • 原文地址:https://www.cnblogs.com/ExMan/p/13892375.html
Copyright © 2011-2022 走看看