Jmeter添加负载机实现负载分发

背景:Jmeter是Java应用,对于CPU和内存的消耗是比较大的,因此,当模拟成千上万个并发用户时,使用单台机器模拟大量的用户有些吃力,甚至会导致java内存溢出。为了让jmeter工具提供更大的负载能力,jmeter提供了一种使用多台机器产生负载的机制。

方法:通过单台jmeter客户端远程控制多个jmeter,使它们同步的对服务器进行压力测

理论上可以控制任意多的远程机器,并通过他们收集数据,这样一来,就有了如下特性:

  1、保存测试数据到本地机器

  2、通过单台jmeter管理多个jmeter执行引擎

  3、没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发送到每一台jmeter服务器

  4、每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整的执行测试计划

在1.4GHz-3GHz 的CPU,1Gb内存的客户端上,可以处理100~300线程,但是webservice例外,XML处理是CPU密集运算的,会迅速消耗掉所有CPU,一般来说,以XML技术为核心的应用系统,其性能是普通web应用的10%~15%,

另外,如果所有负载由一台机器产生,网卡和其他方面都可能产生瓶颈,所以一个Jmeter客户端的线程数不应超过100,采用jmeter远程模式并不会比单台更耗费资源,但是如果使用大量的jmeter远程服务器,可能会导致客户端过载或者网络连接发生堵塞,

部署jmeter负载机步骤如下:

  1、在负载机上安装jmeter,其中一台作为控制机(controller)其他机器作为agent

  2、运行所有agent机器上的jmeter/bin目录下的jmeter-server.bat文件

  3、在controller机器的jmeter的bin目录下,找到jmeter.properties

在文件中查找 remote_hosts = 127.0.0.1,修改为 remote_hosts = 172.16.4.121:1099,172.16.5.11:1099

 

常见问题:

1、在controller端控制某台机器Run,提示Bad call remote host

解决办法:检查被控机器上的jmeter-server有没有启动,或者jmeter.properties中remote_hosts配置错误

2、agent机器启动jmeter_server.bat时,后台提示”could not find apachejmeter_core.jar”

解决方法:确定agent机器是否安装jdk,以及环境变量

3、下面问题: 

原因是在remote_hosts中配置了127.0.0.1 所以在本机也需要运行jmeter-server.bat

4.1099端口号是否被占用

原文地址:https://www.cnblogs.com/codecca/p/13322090.html