JMeter 分布式负载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter 分布式负载相关的知识,希望对你有一定的参考价值。

参考技术A

JMeter 是一个100%的纯 JAVA 应用,对机器 CPU 和内存的消耗比较大,在用 JMeter 做并发测试、负载测试、压力测试等时,模拟的用户数以千计,使用单台机器模拟所有用户会有些力不从心,甚至会引起JAVA内存溢出。

这时,我们可以使用 JMeter 的 分布式负载(也叫联机负载) 功能,通过单个 JMeter 控制机(Controller) 控制多个远程的 JMeter 负载机(Agent) ,使它们同步对服务器进行性能测试。

首先来看一下控制机和负载机的作用:

控制机(Controller):存放 JMeter 脚本的机器,负责在开始运行前把脚本发送到各个负载机,在运行后回收和统计各个负载机的运行结果。

负载机(Agent):被控制用来运行脚本的机器,负责产生负载。

了解了控制机和负载机的作用后,接下来学习如何配置负载机。

在控制机 JMeter bin目录下的 jmeter.properties 配置文件中找到 remote_hosts=......,设置远程负载机的 IP 和端口(默认1099,如要修改该端口需要在负载机配置文件中修改 server_port=xxx)。多个负载机之间用逗号隔开,如192.168.1.30:1099,192.168.1.44:1099。 修改配置文件后切记重启 JMeter,否则修改的配置不生效。

重启 JMeter 后,在选择菜单运行(run) 的远程启动(remote start) 中启动负载机,可以逐个负载机运行,也可以全部一起运行。

启动后,控制机会自动把测试的脚本发送到各个负载机上,每个负载机接收到的脚本都是一样的。每个负载机的虚拟用户数等于控制机中配置的线程数N,所以服务器最终承受的用户数是:负载机数量 X 线程数N。

控制机如果无法连接负载机,在这里补充几种常见的坑。

jmeter 分布式多机联合负载,主制机不能连接到负载机可能的原因

在使用jmeter开展分布式多机联合负载的时候,主控器 运行-->远程启动所有 的时候,会报下面的错误,连接不上负载机(加压器)

如下图:

技术图片

 

可能的原因如下:

1. 检查主控机和负载机ip是否可以ping的通,检查负载机防火墙是否关闭

2. 检查主控机和负载机上的jmeter版本,保证版本一致

3. 负载机(加压机)上的JMeter-server.bat没有启动,如果使用主控机127.0.0.1的话,主控机上也要启动

4.  CSV参数化文件没有复制到负载机同一位置,并且需要保证相同的文件名

 

以上是关于JMeter 分布式负载的主要内容,如果未能解决你的问题,请参考以下文章

jmeter 分布式多机联合负载,主制机不能连接到负载机可能的原因

jmeter 分布式多机联合负载,主制机不能连接到负载机可能的原因

使用 Jmeter 执行分布式负载测试时的端口

使用Jmeter在linux环境实现分布式负载

【JMeter】实现分布式压力测试

Jmeter 分布式测试