• JMeter分布式压测配置(五)


    JMETER分布式压测

    执行分布式的原理

    image
    盗来的图,将就用一下

    • 控制机及执行安装部署JMeter,版本及插件要保持一致(安装好一台,打包给到另一台使用)

    • 关闭每台机器的防火墙(systemctl stop firewalled

    • 如果是java脚本,将java脚本和相关lib包都放在jmeter目录lib/ext下

    • 如果有参数化,每台机器都要有一份参数化文件,且路径需要与脚本设置的一致(每台的机器的参数化文件都是独立的)

    • 压测脚本jmx上传到控制机的任意位置,压测时会自动分发到从机执行

    • 确保主机和从机在一个网络段,否则会出现连接超时

    • 分布式压测,并发数 = 从机数*脚本设置的并发数

    机器准备

    控制机:192.168.1.9(Mac)
    两台执行机:192.168.1.26、192.168.1.27(centos)
    

    执行机(slave)配置

    示例机器:192.168.1.26
    192.168.1.27 机器同样配置

    • 1、修改 jmeter/bin/jmeter.properties 文件
    cd /usr/local/apache-jmeter-5.4.1/bin
    
    vi jmeter.properties
    
    1、remote_hosts=192.168.1.26:1099
    
    2、server_port=1099   //去除注释,远程机器可以连接的端口
    
    3、server.rmi.localport=1099     // 去除注释,jmeter服务启动的端口
    
    4、server.rmi.ssl.disable=true  //去除注释
    
    • 2、修改jmeter-server文件
    RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.26
    
    ${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
    
    • 3、cmd执行命令启动jmeter服务
    // jmeter-server -Djava.rmi.server.hostname=192.168.1.26
    // 或者
    // sh jmeter-server  // 前提已经配置jmeter-server 文件的 RMI_HOST_DEF
    
    nohup jmeter-server &     // 后台启动 jmeter-server
    
    出现下面返回即代表启动成功
    
    [root@localhost bin]# nohup jmeter-server &
    
    [1] 1406
    
    [root@localhost bin]# nohup: ignoring input and appending output to "nohup.out"
    

    控制机(master)配置

    控制机:192.168.1.9(Mac)

    • 1、修改 jmeter.properties文件
    1、remote_hosts=192.168.1.26:1099,192.168.1.27:1099    // 多台控制机之间用英文逗号分隔
    
    2、server.rmi.ssl.disable=true
    
    3、mode=Standard    // 去掉 # 注释
    
    • 2、修改 jmeter-server
    vi jmeter-server
    
    RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.9    // # 去掉,等号后面修改为控制机的ip: 192.168.1.9
    

    控制机执行分布式压测

    cd 脚本目录
    jmeter -n -t login.jmx -l /report/result.jtl -r
    
    -n:命令行执行
    -t:指定的脚本
    -r:使用分布式执行压测
    
    // 指定执行机进行分布式压测
    jmeter -n -t login.jmx -l /report/result.jtl -R 192.168.1.26,192.168.1.27 (执行机 IP)
    
    

    远程命令行从机执行脚本

    cd 脚本目录
    jmeter -n -t 脚本名称.jmx  -l report/ -R 192.168.1.26    (执行机 IP)
    

    中途停止压测

    • 不可以使用Ctrl+C强制停止,会导致从机一直忙碌,下次主机无法连接从机

    • 主机进入bin目录,执行shutdowh.sh脚本让主从机停止当前压测

    分布式压测过程出现报错过多分析

    • 首先检查主机的 jmeter.log文件,检查是否有ERROR之类的错误
    • 控制机jmeter的bin目录下的jmeter-server.log文件,检查是否有ERROR之类的错误
    • 分布压测时,脚本开启结果树,写入xml文件,勾选仅错误日志,配置需要写入的信息,分析错误时查看报错原因(需要对Jmeter进行配置4.0版本测试,OK)

    CentOS7 操作防火墙

    Centos7 下默认的防火墙是 Firewall,替代了之前的 iptables

    如果提示:Unit firewalld.service could not be found. 说明防火墙没有安装,需要安装

    yum install firewalld firewall-config
    

    重启、关闭、开启firewalld.service服务

    service firewalld restart 重启
    service firewalld start 开启
    service firewalld stop 关闭
    

    添加自定义端口

    firewall-cmd --zone=public --permanent --add-port=8010/tcp
    

    查看firewall服务状态

    systemctl status firewalld.service
    

    查看firewall的状态

    firewall-cmd --state
    

    查看防火墙规则

    firewall-cmd --list-all
    

    添加服务

    firewall-cmd --permanent --zone=public --add-service=http
    

    使最新的防火墙规则生效

    firewall-cmd --reload
    
  • 相关阅读:
    jQuery操作单选按钮(Radio)
    Django:DRF实现模糊搜索
    Django:实现导入功能,及下载模版
    python使用DES加密解密
    在线OCR识别
    bootstrap-table导出时存在bootstrap-switch按钮如何导出
    Django:解决时间显示格式含有T
    翻页时bootstrap-switch样式失效
    bootstraptable导出
    统计文件行数
  • 原文地址:https://www.cnblogs.com/DeryKong/p/14992773.html
Copyright © 2020-2023  润新知