ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jmeter分布式

2022-07-26 14:32:11  阅读:155  来源: 互联网

标签:助攻 机器 server 线程 服务器 jmeter 分布式


jmeter分布式

为什么要用分布式?

因为jmeter在做性能测试的时候,我们理想状态下,可能想让线程组跑几千上万个线程,一起向服务器施加压力,看服务器能不能承受得住,但是每台电脑都有自己的并发上限,这个和当前电脑的配置有关系,如果当前电脑的配置比较高,可能能虚拟出更多的虚拟用户出来,如果配置不高,可能就不能虚拟出更多的用户,因为在虚拟用户的时候,需要分配电脑上的资源,去创造那么多虚拟的人出来,需要消耗很大的资源,达到一定的数量之后,电脑就虚拟不出来那么多的人

比如说电脑最大只能虚拟500个人,想要测试600人那就测不出来了,这种时候就需要用到分布式测试

分布式

分布式是分摊自身机器产生虚拟用户的压力(自身机器由于配置的原因最多只能产生500个虚拟并发用户,其他用户用另外机器一起分工合作,分摊自身机器的压力,最终实现产生800个或者1000个并发用户向服务器发起请求的目的,是分摊自己的压力,并不是减轻对服务器的压力)

集群

集群是我们的服务器有多台机器组成在一起,集合在一起向外来提供服务,内部就是一个集群,是分摊服务器自身处理能力的方式

服务器分摊压力的一种方式

分布式

主控机器控制5台控制机向服务器发起请求,服务器收到请求之后将处理的结果分发给这5台机器,5台机器再把结果给到控制的机器,这样就实现了把自身压力分摊到5台机器上一起向服务器造成压力

将自身的压力分摊到5台机器上。向服务器发起请求,然后服务器处理完之后返回结果到五台服务器并且返回给master(监控机器)

img

分布式配置:

保持一致:jdk一致,jmeter版本一致(本机zip)脚本最好使放到jmeter的zip

网络:同一个局域网

例如:自己电脑+同事电脑需要一致性

img

img

需要使用相对路径:csv的文件与jmx文件路径一致

把本地jmeter根目录打包成zip发送给你的助攻机器上(这样可以保证jmeter的一致性)

也可以使用自己电脑上的虚拟机,只要网络是net网络动态分配(不是固定配置的网络)就可以,确保虚拟机和本机是在同一个网络下

可以查看虚拟机的网段和自身机器是不是在一起的(使用ipconfig)

助攻机器上先要用jmeter确认版本一致

助攻机配置

进入到助攻机器上,在jmeter文件夹的bin文件夹下找到属性配置文件properties

img

1.首先将语言改为中文zh_CN

2.在配置文件中找到server_port,可以看到默认端口,可以自己去定义这个端口配置一下。例如配置为8887

3.在配置文件中找到server.rmi.port,可以看到默认端口,将这个端口改为和server_port一样的为8887

4.在配置文件中找到server.rmi.ssl.disable,默认为false,需要将它改为true(之前是ssl加密传输认证可用,现在改为不可用)

5.保存配置文件properties

6.在助攻机上确认jdk,如果没有就需要进行安装jdk

7.确保助攻机器的防火墙是否关闭(防火墙一定要能够正常通过端口)服务通过不能防火墙就不能对外提供服务,可以临时关闭防火墙systemctl stop firewalld.service

助攻机器如果不关闭防火墙就可以开启对应的端口(server_port)不然服务出不来无法访问服务

8.启动服务 Windows下 :jmeter-server.bat -Djava.rmi.server.hostname=助攻机ip ; 如果是linux系统jmeter-server -Djava.rmi.server.hostname=助攻机ip

​ 这个命令需要在jmeter的bin文件夹下执行

在实际使用中不要用虚拟机,相当于还是自身电脑的资源

运行之后回到控制机

控制机配置

进入到控制机器上,在jmeter文件夹的bin文件夹下找到属性配置文件properties

img

1.在配置文件中找到remote_hosts。看到默认ip为127.0.0.1,为本机,要将它修改为助攻机器的ip地址192.168.0.122:端口号(这个端口号为刚刚在助攻机中填写的端口8887)如果有多台助攻机,可以配置端口不一致也可以一致。例如有两个助攻机,那这时配置为192.168.0.122:8887,192.168.0.124:8886

2.在配置文件中找到server.rmi.ssl.disable,默认为false,需要将它改为true(之前是ssl加密传输认证可用,现在改为不可用)

3.在配置文件中找到mode,可以直接取消注释,也可以添加mode=Standard(用于显示监视结果,如果没有配置,将看不到助攻机器的实时结果)

4.重启jmeter

在jmeter界面的运行--远程启动可以看到配置内容

img

1,在启动助攻机的机器后,在主机上运行命令看能不能连接助攻机(网络能不能通)

telnet 助攻机ip:端口

2,在主机的jmeter下打开对应的线程组,在运行菜单下点击远程启动,可以看到助攻机的ip和端口

点击这个ip

img

可以看到命令行窗口在执行

img

这个时候是助攻的机器在向服务器发起请求,主控机器并没有向服务器发起请求

主控机器上可以看到助攻机器发起请求之后的各种数据

修改主机上的线程组场景,助攻机器的运行场景也会变化

修改主机上的脚本,助攻机器的也会变化

服务器收到的线程数是助攻机器的总和

只能按照平均值来的,就是现在线程总数为1000,每台机器线程数为500

修改主机上的线程组,助攻机器进行执行,但是助攻机器本身的线程组没有变化

img

img

active 活跃线程数 这个数据是有有几台机器就有几条

其他两个响应时间和tps只有一条

如果要主机和助攻机同事发起请求,就要在主机中配置成和助攻机器一样的

img

在主机配置中,助攻机器ip就是本身的ip地址所以用逗号分开,加上自身的ip地址

img

img

做分布式的原因:

不可能无限量的区虚拟出虚拟用户,需要分布式来分摊压力(其他人一起进行分布式)

img

img

标签:助攻,机器,server,线程,服务器,jmeter,分布式
来源: https://www.cnblogs.com/dengdengdeng1998/p/16520853.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有