JMeter 分布式压测原理及实战避坑指南

为什么要做分布式?

之前我们讲过如何在Linux环境下,用单机进行压测,但是实际工作中,有时候我们需要用多台机器进行压测。那么什么情况下我们需要用多台机器进行压测呢?当我们一台机器不够的情况下,就需要用多台机器。

那么怎么去鉴定机器到底够不够呢?这个主要看我们压力机的资源(主要判断在CPU,超过80%则表示不够用了)。如果说我们在LInux环境下运行JMter,运行的过程中,是会消耗我们服务器的资源,如cup、内存等。如果说我们机器资源不够了,那么测试出来的数据是不准的。如我们tps压不上去,很有可能就是服务器资源不行了,在这种情况下,我们通常都需要拓展机器。

分布式压测原理

在这里插入图片描述

  • JMeter分布式压测是选择一台作为调度机(master),其他机器作为执行机(slave),当然一台机器也可以既做调度机,也做执行机
  • 调度机执行脚本的视乎,master会将 jmx脚本分发到slave中,slave拿到脚本以后以非GUI的形式开始执行。
  • slave执行完毕知乎,将结果返回给master,并有master进行结果的汇总。

分布式测试步骤:

系统在HOSTS文件中进行类似 本机IP 主机名的配置,如10.0.0.23 zhoucentos,否则启动jmeter server会报错!

首先,我们来查看本机ip和hostname
在这里插入图片描述
查看之后,通过 vi/etc/hosts进行配置,将ip和hostname配置进去并保存。每台机器都配置。

在这里插入图片描述

  • 在每台机器上都部署jmeter

  • 如果java脚本,将java脚本和相关lie包都放在jmeter目录/ext下

  • 将jmeter的场景文件jmx上传到主jmeter的任意位置,参数文件放到每一台压力机上(存放目录要相同)

  • 没台机器修改jmeter.properties文件,ssl.disable=true (去掉注释)
    在这里插入图片描述

  • 在每台机器上进入到jmeter的bin目录下,都启动 nohup ./jmeter-server &(后台启动jmeter-server服务)
    在这里插入图片描述
    查看启动日志,成功了
    在这里插入图片描述

  • 在主jmeter的bin目录下,修改jmeter.properties,将其中的remote_host修改作为压力机的两台机器ip。remote_host=127.0.0.1,192,168.0.102
    在这里插入图片描述

  • 在主jmeter的机器上,执行jmter -n -t xxx.jmx -l result.jtl -r(示例,具体根据目录和路径自定义)

    -r 则表示分布式压测,如果每加,则是单机压测

注意:
1、如果是http脚本,在controller的机器上有脚本文件即可;
2、如果是Java脚本,在每一台机器上都的有脚本文件和依赖的jar包

在这里插入图片描述

可以看到已经执行成功了~

避坑:

这里在执行的过程中,连接从机失败了,主要原因是因为阿里云安全组中没有添加默认端口1099。

命令行配置IP

前面我们在 jmeter.properties 文件中,配置了从机的ip,其实还有一种方式可以不用修改配置文件,命令行的方式可以运行,也可以达到相同的效果。

 jmeter -n -t Linux.jmx -l result3.jtl -R 127.0.0.1,192.168.2.120

温馨提示

如果在分布式压测过程中,想要终止压测,千万不要在Linux上按 ctrl + c 强制终止程序,这样会知道主程序挂了之后,从机未接受到执行,会一直持续运行。当你再次从主机上运行脚本,从机仍然会在上一个脚本的程序中运行。

如果想要终止程序,可以执行命令行./shutdown.sh ,通知master终止程序,然后master 再去通知salve停止运行。

cd 进入到JMeter 的 bin 目录下
输入 ./shutdown.sh 命令停止脚本
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值