admin管理员组文章数量:1613754
为什么进行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)可以正常监测:
版权声明:本文标题:Jmeter分布式压测-windows(master控制机)&多个linux(slaves负载机)&监测服务器资源(cpu、内存等) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728658625a1168448.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论