当前位置: 首页 > news >正文

分布式性能测试-通篇讲解 Locust 性能测试

分布式性能测试-小试牛刀

Locust 分布式负载生成概述

Locust 支持分布式负载生成,以模拟更高的并发负载。你可以通过以下方式来配置和使用分布式模式:

1. 基本概念

  • Master 实例:管理整个负载测试,运行 Locust 的 Web 界面,并协调各个 Worker 的任务。
  • Worker 实例:实际运行用户模拟负载,向 Master 实例报告统计数据。Worker 实例不会运行 Web 界面。

2. 单机模式

在单台机器上启动多个进程:

  • 启动一个主进程并指定进程数:

    locust --processes 4
  • 启动一个主进程并自动检测逻辑核心数:

    locust --processes -1

3. 多台机器模式

在一台机器上启动 Master 实例,然后在每个 Worker 机器上启动 Worker 实例:

  • 启动 Master 实例

    locust -f my_locustfile.py --master
  • 启动 Worker 实例(在每台 Worker 机器上):

    locust -f - --worker --master-host <your master> --processes 4
    • f - 参数表示从 Master 上获取 locustfile 文件。
    • <your master> 是 Master 实例的地址。

4. 使用 locust-swarm

locust-swarm 插件简化了分布式负载生成的启动过程,并解决了防火墙/网络访问的问题:

  • 安装 locust-swarm

    pip install locust-swarm
  • 启动分布式负载生成

    swarm -f my_locustfile.py --loadgen-list worker-server1,worker-server2 <any other regular locust parameters>
    • -loadgen-list 指定了 Worker 服务器的地址列表。

5. 分布式负载生成选项

  • -master-host <hostname or ip>:指定 Master 节点的主机名或IP(默认为 localhost)。
  • -master-port <port number>:指定 Master 节点的端口(默认为 5557)。
  • -master-bind-host <ip>:指定 Master 节点绑定的网络接口(默认为 ``)。
  • -master-bind-port <port number>:指定 Master 节点监听的端口(默认为 5557)。
  • -expect-workers <number of workers>:在启动 Master 节点时,等待指定数量的 Worker 节点连接。

6. 节点间通信

可以通过消息钩子在 Master 和 Worker 节点间进行通信:

from locust import events
from locust.runners import MasterRunner, WorkerRunner# Worker 收到 'test_users' 消息时触发
def setup_test_users(environment, msg, **kwargs):for user in msg.data:print(f"User {user['name']} received")environment.runner.send_message('acknowledge_users', f"Thanks f

http://www.mrgr.cn/news/15286.html

相关文章:

  • 微积分复习笔记 Calculus Volume 1 - 1.2 Basic Classes of Functions
  • 拉取/启动kafka的docker镜像
  • 高性能web服务器4——Nginx反向代理A
  • IDEA/Pycharm/Goland/jetbrains2024.2全家桶汉化失败问题解决
  • Prometheus和Grafana构建现代服务器监控体系
  • 极狐GitLab 如何管理 Kubernetes 集群?
  • Tinder 平台账户多登如何防止封禁账号?
  • 快速了解NoSql数据库Redis集群
  • LiveKit人员总是自动退出房间,进入5分钟后人员自动掉出问题等问题踩坑及解决办法
  • 类在JVM中的工作原理
  • WordPress入门级防火墙推荐指南
  • Kafka配置文件 - server.properties
  • 2008-2024年荣威汽车维修手册和电路图线路图接线图资料更新
  • 【使用python实现多目标批量ping】附案例
  • “NoSQL数据库技术及其应用”写作框架,软考高级,系统架构设计师
  • @ConfigurationProperties Spring Boot配置文件取数据
  • RocketMQ第5集 工作流程
  • Redis持久化与主从同步
  • python使用 pcap 库捕获网络数据包,附示例
  • aspose.pdf实现图片转pdf