admin管理员组

文章数量:1613763

为什么进行jmeter分布式压测?

一、干货解释原因:
**原因一:**一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿、无响应等情况,这是受限于 Jmeter 其本身的机制和硬件配置(内存、CPU等)
**原因二:**由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现 JAVA 内存溢出的错误,导致测试脚本本身就有瓶颈

二、什么叫分布式压测:
普通压测:单台机可以对目标机器产生的压力比较小,受限因素包括CPU,网络,IO等
分布式压测:利用多台机器向目标机器产生压力,模拟几万用户并发访问

三、环境搭建:
前提条件:强烈建议windows(master控制机)与多个linux(slaves负载机)的jmeter、jdk版本保持一致
JMeter下载地址:http://jmeter.apache/download_jmeter.cgi

windows安装:
1、windows(master控制机)安装jmeter与jdk,比较简单自行安装,配置好环境变量即可

linux安装:
温馨提示:多个linux(slaves负载机)的安装路径保持一致,安装方法均一致,JDK版本与windows一致,自行安装
1、上传并解压

tar -xvzf apache-jmeter-5.1.1.tgz


2、配置环境变量

vi /etc/profile
export PATH=$PATH:/root/test/apache-jmeter-5.1.1/bin


3、配置生效环境变量

source /etc/profile

4、配置Agent

vi jmeter.properties

server_port=1099
server.rmi.localport=1099
server.rmi.ssl.disable=true
server_port和server.rmi.localport设置成相同的端口号,controller操纵agent时需要使用此端口



5、运行agent
所在的bin目录下执行:

jmeter-server

(如果报: Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
An error occurred: Cannot start. localhost.localdomain is a loopback address.
那么就指定当前linux机器的ip 执行
./jmeter-server -Djava.rmi.server.hostname=XXX.168.0.XXX)

windows上配置Controller

/apache-jmeter-5.1.1/bin/jmeter.properties
remote_hosts=192.100.8.128:1099,192.100.8.129:1099
remote_host指定agent服务的地址,多个地址使用逗号(,)分隔。

server.rmi.ssl.disable=true

去掉mmode=StrippedBatch(StrippedBatch:在响应数据中删除成功采样后,使用Batch模式)

resultcollector.action_if_file_exists=DELETE


四、测试验证:
1、已经显示出来了slaves的地址,可以进行单独运行,也可以远程启动所有

2、远程启动所有

五、监测服务器资源(CPU、内存等):
首先确保防火墙状态是关闭

systemctl status firewalld

1.插件准备
1)、下载安装包
JMeterPlugins-Extras.jar:https://jmeter-plugins/install/Install/
JMeterPlugins-Standard.jar:https://jmeter-plugins/install/Install/
ServerAgent-2.2.1:https://github/undera/perfmon-agent

2)、下载后分别解压
将JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar 放到jmeter安装路径 apache-jmeter-5.1.1\lib\ext目录下
将ServerAgent-2.2.1解压包放到要被监测的服务器上(linux服务器可以放在opt目录下,windows任意目录下)

2.环境准备:
1)Linux服务器启动监控服务
运行命令./startAgent.sh 或 sh startAgent.sh 即可启动ServerAgent服务

注:ServerAgent服务端口号默认为4444,如若遇到端口被占用,则需关闭占用该端口的进程,或者改变ServerAgent服务的默认端口:

A:关闭占用4444端口的进程

关闭占用4444端口的8260进程后,再次启动ServerAgent服务,成功。

B:使用命令改变ServerAgent服务的默认端口

java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777

同样的,7777端口也要设置防火墙规则以及使用telnet本地测试下是否可以访问

3.资源监听
1)、选择监听器:

2)可以正常监测:

本文标签: 多个分布式内存服务器载机