zoukankan      html  css  js  c++  java
  • Linux 环境下搭建Jmeter集群(六)

    一、为什么要搭建集群?

        主要原因单台服务器没有办法满足系统的压力,通过多台服务器来缓解压力。

    二、Jmeter 分布式原理 

      1.JMeter 分布式测试,选择节点来做调度服务器,其他的节点作为执行节点,通过调度节点管理其他节点;

      2.启动服务时,调度服务器会把脚本发送到各个执行节点(脚本会发送到执行节点,但是数据不会发送),执行节点拿到脚本开始执行命令;

      3.各个执行节点执行结束以后将结果回传给调度节点,调度节点进行数据汇总;

      原理图:

     

    三、环境搭建

      1、每个节点安装Jmeter。

      2、进入Jmeter 调度节点(Jmeter  Controller )bin目录,编辑meter.properties

    jmeter.properties文件中搜索关键字remote_hosts,来添加Slave 节点的IP,默认Jmeter Server的端口是1099,如果需要修改取消server_port注释进行修改

    注意:
        如果你想Controller节点也参与施压,remote_host 内容需要添加本机地址

      3.编辑Salve 节点jmeter-server文件,将服务器的主机IP设置为固定值

       4.启动所有参与请求的节点jmeter-server,进入bin目录启动

    ./jmeter-server

    注意:
    
      1.如果你的Controller节点参与了请求,此时jmeter-server也需要启动;
      2.执行的脚本进行文件参数化,此时需要存放在jmeter-server启动的相对位置路径,而不是你脚本存储的相对路径,首先执行的时候,Controller节点会对脚本下发,他会下发到jmeter-server启动的路径,而不是你脚本存放的路径

       此时将Jmeter的分布式集群搭建完成,剩下的就是来运行测试脚本了

      5.运行测试脚本

    •  启动所有Slave节点(添加参数-r)
     jmeter -n -t osg-uus服务目标ping接口.jmx -l result/17-1-200-1/testResult.jtl  -e -o result/17-1-200-1 -r
    • 启动指定Slave节点
     jmeter -n -t osg-uus服务目标ping接口.jmx -l result/17-1-200-1/testResult.jtl  -e -o result/17-1-200-1 -R 172.29.64.11

      

     6.Jmeter 命令介绍

    参数 解释
    -n 非 GUI 模式 
    -t 运行的 JMeter 测试脚本文件
    -l 指定记录结果的文件
    -r 启动所有Slave节点
    -R 指定启动Slave节点,多个节点通过,分隔

     四、遇见的坑

      由于压测的过程由于需要改变网络环境,但是服务器域名映射依然是旧地址,在远程请求的过程中无法连通,导致分析很久,最好将hostname映射关系添加在hosts文件避免这样的错误

    其实很早想记录下Jmeter集群搭建,也不知道什么理由一直拖到了现在,疫情期间在家办公,也不知道啥时候上班啥时候下班,趁着孩子睡觉,记录下。

  • 相关阅读:
    PostgreSQL中的partition-wise join
    Partition-wise join
    外观模式 门面模式 Facade 结构型 设计模式(十三)
    桥接模式 桥梁模式 bridge 结构型 设计模式(十二)
    组合模式 合成模式 COMPOSITE 结构型 设计模式(十一)
    创建型设计模式对比总结 设计模式(八)
    原型模式 prototype 创建型 设计模式(七)
    单例模式 创建型 设计模式(六)
    建造者模式 生成器模式 创建型 设计模式(五)
    抽象工厂模式 创建型 设计模式(四)
  • 原文地址:https://www.cnblogs.com/mengyu/p/12343881.html
Copyright © 2011-2022 走看看