Jmeter分布式并发压测方案
压测机性能
配置(MacBook Pro 2020,2 GHz 四核 Intel Core i5,16 GB 3733 MHz LPDDR4X)最多开2000个线程,超出卡死;
瓶颈:
在我司用MacBook pro最多并发900请求(带宽限制),超出需要使用分布式压测;
没有带宽限制(同一网段),该机器理论上可以达到2000请求并发;
分布式压测方案
机器要求
https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
一台主控机(单核2G) windows server 2019,带宽不限;
N台肉机(单核2G)centos 7.6( 必须与被测服务在同一网段);
注:
1、主控机和各肉机必须在同一个网段
2、主控机不发请求,每台肉机最多起500线程(超过可能就死机了);
压测指标设置
TPS(每秒事物数),RT(响应时间),并发数(同时刻发出请求的用户数/线程数)

分布式压测步骤
一、主控机1台 windows sever 2019
jmeter配置:
下载插件管理器: https://jmeter-plugins.org/install/Install/
放在lib/ext目录下,压缩jmeter
主控机配置:
1、开始 --> 服务管理器 --> 本地服务器 --> IE增强的安全配置,全部关闭;
2、打开ie,下载安装QQ/TIm;
3、Tim传输jdk、jmeter、各jmx脚本,下载到桌面并解压、安装(jdk超过200M,所以用QQ/Tim);jmeter解压到C盘;在C盘新建java文件夹,安装jdk;
4、配置环境变量,开始 --> 控制面板 --> 系统和安全 --> 系统 --> 高级系统设置 --> 环境变量:
新建JAVA_HOME,添加:C:\java
新建JMETER_HOME,添加:C:\apache-jmeter-5.0
新建CLASSPATH,添加:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar
编辑PATH,添加:;%JAVA_HOME%\bin;
5、打开jemter bin 目录下jmeter.properthes文件(jmeter压缩包提前配置,可不用进行此步骤),取消注释并修改:
remote_hosts=ip_1:1099, ip_2:1099, ..., ip_3:1099, ..., ip_n:1099
server.rmi.ssl.disable=true
二、肉鸡n台 centos7.6
1、上传jmeter、jdk(jmeter版本5.0 & 已配置过jmeter.properthes文件,jdk版本1.8.0_211),到 /root 目录
2、解压:
tar -zxvf apache-jmeter-5.0.tgz
tar -zxvf jdk-8u211-linux-x64.tar.gz
3、环境变量:
vim /etc/profile
export JAVA_HOME=/root/jdk1.8.0_211
export JMETER_HOME=/root/apache-jmeter-5.0
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
export PATH=$JAVA_HOME/bin:$PATH:.
export PATH=.:$JMETER_HOME/bin:$PATH
source /etc/profile
4、打开jemter bin 目录下jmeter.properthes文件(jmeter压缩包提前配置,可不用进行此步骤),取消注释并修改:
server.rmi.ssl.disable=true
5、进入/root/apache-jmeter-5.0/bin 目录
netstat -lntp | grep 1099 查看1099端口是否被占用
执行命令 ./jmeter-server ,启动jmeter服务
注:
多网卡时需要指定ip启动:jmeter -Djava.rmi.server.hostname=ip
三、执行与监控
执行测试:
主控机以GUI模式远程启动单个或所有肉机

服务器监控:
稳定性监控:Prometheus+Grafana 、zabbix等
实时监控:top、vmstat等
压力机监控:
jp@gc - Transactions per Second 插件(并发请求数)
jp@gc - Response Times Over Time 插件 (响应时间)
聚合报告
后端监听器+influxdb
常用命令
获取ssh key:cat ~/.ssh/id_rsa.pub
jmeter终端执行执行:
本地:jmeter -n -t hula_baby.jmx -l jmeter_report/reoprt.txt -e -o jmeter_report/html_report
服务器:jmeter -n -t /home/bigllxx/hula_baby.jmx -l /home/bigllxx/jmeter_report/reoprt.txt -e -o /home/bigllxx/jmeter_report/html_report
已写好 shell 的话直接运行就好
上传文件到服务器:
scp /Users/bigllxx/Desktop/性能测试/A03\ 文章详情.jmx root@x.x.x.x:/home/bigllxx/jmeter
从服务器下载文件:
scp -r root@x.x.x.x:/home/bigllxx/jmeter/jmeter_report /Users/bigllxx/Desktop

浙公网安备 33010602011771号