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(响应时间),并发数(同时刻发出请求的用户数/线程数)

image-20211011094449770


分布式压测步骤

一、主控机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模式远程启动单个或所有肉机

image-20211011094550851

服务器监控:

稳定性监控: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

posted @ 2022-11-14 17:32  寡淡的白开水  阅读(1006)  评论(0)    收藏  举报