Jmeter分布式部署
性能测试过程中,常常要求并发数达到一个比较大的值(例如1000+)。当单机配置的CPU与内存等资源无法支撑,就需要部署Jmeter的分布式测试环境。
文章图片
例如:单接口并发500,持续1min Jmeter报OutOfMemoryError 一般什么情况下需要分布式(原文链接:https://www.cnblogs.com/ranxf/p/6656457.html)
【Jmeter分布式部署】1.比如机器i5双核的cpu,8g的内存。压测一个简单的接口,可以支持500+的并发。(但是如果压测方案逻辑复杂,比如在jmeter里面加了很多控制器,监听器,这些都是很耗机器性能,这时候可能连100并发都压不上去)
2. 压测过程中如果Jmeter未响应,卡住,反应慢,随即启动任务管理器,如果cup和内存特别大时,则说明单机扛不住了,则要使用分布式了
3. 随着并发的增大,TPS不会增长,即出现瓶颈(排除服务器瓶颈及其他),可能是本测试机扛不住了,则要分布式
Jmeter分布式操作步骤:
1.Jmeter分布式测试时,选择其中一台作为Master,其它机器做为Slave(例如本文中有一台Master:10.92.0.4;有两台slave,分别为10.92.0.75和10.92.0.74注意Master和所有Slave必须同一个网段内!!!否则无法成运行,具体表现为会报slave拒绝连接的错误)。
2.执行时,通过Master,运行所有Slave上的jmeter-server文件。
3.在Master的Jmeter文件的bin目录下找到Jmeter.properties,并且修改文件中的“remote_hosts”。
将“remote_hosts=127.0.0.1”改为““remote_hosts=10.92.0.75:1099,10.92.0.74:1099”
文章图片
有多台slave时,主机用英文的逗号“,”连接 3.启动Controller上的jmeter,选择运行>远程启动下的10.92.0.75:1099和10.92.0.74:1099
文章图片
下面,我们开始进行实例的讲解:(windows上的master控制2台Linux环境的slave)
首先,我们在Master和slave上安装java环境和jmeter。
注意:master和slave机中的jmeter版本必须一致(小版本也得一致)Jmeter的安装 去Jmeter官网(http://jmeter.apache.org/download_jmeter.cgi)下载安装包以及其源码,如下面为其对应windows系统的包:
JRE的版本也需要一致,不能一个java7一个java8(只要大版本一致即可)
apache-jmeter-3.0.tgz(Linux环境安装包)
apache-jmeter-3.0.zip(Windows环境安装包)
解压即可。
Linux环境解压命令:tar xzvf apache-jmeter-3.3.tgz
![Jmeter分布式部署](https://img.it610.com/image/info10/645747f2785240329c85f5252ae2fa30.jpg)
文章图片
解压成功 Jmeter的环境变量配置
Windows环境Jmeter的运行需要依赖JDK环境,所以需要安装jdk和配置环境变量。
去Oracle官网(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载jdk;
下载后正常安装即可。
环境变量的配置:
我的电脑>属性>高级系统设置>高级>环境变量>系统变量
新增变量名:JAVA_HOME;变量值:jdk的安装目录
![Jmeter分布式部署](https://img.it610.com/image/info10/8ae4f016dd53435397b1066b5594c610.png)
文章图片
编辑path,将jdk安装目录下的/bin文件复制过去“C:\Program Files x86)\Java\jdk1.8.0_131\bin; ”
![Jmeter分布式部署](https://img.it610.com/image/info10/e5af285bf2a347f08dc0658c518f6c6b.png)
文章图片
Linux环境更简单,下载安装和配置jdk:输入命令yum install java-1.8.0-openjdk* -y
![Jmeter分布式部署](https://img.it610.com/image/info10/0726408119434b0ab197e96a6a80149c.png)
文章图片
java -version确认安装成功 更改Jmeter配置 进入Jmeter目录: cd apache-jmeter-3.3/cd bin/
ls命令:这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令(简写是ll)
![Jmeter分布式部署](https://img.it610.com/image/info10/2a8e98a4afcf4c10b7abc2d3e1eb819e.jpg)
文章图片
编辑jmeter.properties文件:vi jmeter.properties
![Jmeter分布式部署](https://img.it610.com/image/info10/f6c85432ff744bc0b024bf71631f1370.png)
文章图片
查找remote_host在文件中的位置:输入命令/remote_hosts
![Jmeter分布式部署](https://img.it610.com/image/info10/da97c305ee0e498c8ec36d8d0ca6cb69.png)
文章图片
/remote_hosts 输入a,进入编辑状态,修改ip为master机的ip,加端口1099
![Jmeter分布式部署](https://img.it610.com/image/info10/5717d56ed15f4a53a875ac2db529e62a.png)
文章图片
退出和保存:esc+:wq!
启动Slave上的jmeter:输入命令./jmeter-server
![Jmeter分布式部署](https://img.it610.com/image/info10/cf47e0756f4649f39e8bbd6e2de5f245.png)
文章图片
![Jmeter分布式部署](https://img.it610.com/image/info10/408b92857c3541fa8bec4cc0f610d50f.png)
文章图片
远程全部启动或单独启动
推荐阅读
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 深入浅出谈一下有关分布式消息技术(Kafka)
- Spring|Spring Boot部署到Resin遇到的问题
- 190403|190403 - Jmeter压测接口
- KubeDL HostNetwork(加速分布式训练通信效率)
- 如何在阿里云linux上部署java项目
- 部署专题集合
- 实操Redission|实操Redission 分布式服务
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)