zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Vue 2.x windows环境下安装
    VSCODE官网下载缓慢或下载失败 解决办法
    angular cli 降级
    Win10 VS2019 设置 以管理员身份运行
    XSHELL 连接 阿里云ECS实例
    Chrome浏览器跨域设置
    DBeaver 执行 mysql 多条语句报错
    DBeaver 连接MySql 8.0 报错 Public Key Retrieval is not allowed
    DBeaver 连接MySql 8.0报错 Unable to load authentication plugin 'caching_sha2_password'
    Linux系统分区
  • 原文地址:https://www.cnblogs.com/DeryKong/p/14992773.html
Copyright © 2011-2022 走看看