性能测试全栈笔记:41.Jmeter分布式压测-执行

作者: admin 分类: 性能专题 发布时间: 2021-12-26 15:00

上一章学习了Jmeter基准压测,本章学习Jmeter分布式压测

根据服务器处理能力,进行逐步加压:

  • 10vu/20vu/30vu/50vu/100vu/150vu
  • 100vu/200vu/300vu

引导:cpu到80%/90%,就算再压,也是假压力,没有意义,于是我们可以再加一台压力机,形成分布式压测。

1.为了区别压力机器,我们可以修改Linux各压力机名称:

1)查看压力机名称:hostname或者uname -n

2)开始修改:vi /etc/hostname

3)修改为:jmeter1

4)再修改:vi /etc/hosts

5)文末修改为:192.168.25.151 jmeter1(注意中间有空格)

6)重启机器:reboot或者shutdown -r now

7)再次uname -n,已经成功改成:jmeter1

2.检查jmeter.properties及jmeter的配置,为了加深印象,请移步这里:性能测试全栈笔记:38.Linux环境中Jmeter压力机部署

3.关机,并复制一台压力机,将第二台压力机取名为jmeter2(操作步骤如上),相关命令:

  • [root@jmeter2 ~]# vi /etc/hostname:修改为jmeter2
  • [root@jmeter2 ~]# vi /etc/hosts:修改为:192.168.25.154 jmeter2
  • [root@jmeter2 ~]# uname -n

下面进行重点配置:

1.每台机器都部署好jmeter环境(完成)

2.如果是java脚本,要将java脚本和lib包放到jmeter中lib/ext目录下(暂未涉及)

3.将jmeter的jmx脚本文件上传到主jmeter自定义位置,参数文件放到每一台压力机器上(目录需相同):压力从哪台机器发,就把脚本放在哪一天,自定义一台为主压力机,如果有csv文件,每台压力机都要放且目录要相同

【将192.168.25.151作为主压力机】,脚本场景:5vu-30s

4.bin目录下修改jmeter.properties文件,将ssl.disable设置为true,并去掉注释:ssl.disable=true(使ssl证书无效)

server.rmi.ssl.disable=true

5.每台压力机,进入jmeter的bin目录下,都启动nohup ./jmeter-server &:后台启动jmeter-server服务:

[root@jmeter1 bin]# nohup ./jmeter-server &
[1] 79166
[root@jmeter1 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

6.看一下jmeter server服务有没有启动成功:ps -ef |grep java,端口:-Dserver_port=1099,端口号是1099(记住这个端口)

8.在主jmeter的bin目录下,修改jmeter.properties文件,将其中的remote_hosts修改为两台压力机的ip,remote_hosts=127.0.0.1,192.168.0.102

9.看一下从压力机的端口号:ps -ef |grep java

得到:-Dserver_port=1099 -s -j jmeter-server.log,服务已启,端口:1099

10.操作第8步,进入主压力机jmeter的bin目录,修改jmeter.properties文件,搜索:/remote

remote_hosts=localhost:1099,192.168.25.154:1099

11.保存并退出::wq!

12.在主jmeter的机器上,执行jmeter -n -t ../20211226-2.jmx -l result.jtl -r(示例,具体目录和路径自定义)

这里思考一个问题,一台压力机:5个并发,那现在两台压力机呢,是5?还是10?待会看。

分布式压测开始:[root@jmeter1 bin]# jmeter -n -t ../script/20211226-2.jmx -l ../result/20211226-5vu-30s-2.jtl -r(不要忘记还有一个-r)

13.压缩一下:[root@jmeter1 result]# zip 20211226-5vu-30s-2.zip 20211226-5vu-30s-2.jtl

14.下载刚才的压缩文件20211226-5vu-30s-2.zip,解压后将文件放置jmeter脚本中,验证一下刚才思考的问题:

15.结论:分布式压测,并发数=虚拟用户数*压力机数量

小结:

  • 一般一台Linux机器200vu没有问题
  • 如果是http脚本,在主控机器上有脚本即可
  • 如果是java脚本,在每一台机器上都要上传脚本和依赖的jar包

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复