分布式部署(转载)

  一、分布式介绍:

  Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。

  那么,是如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter。这种方式很笨,也很难达到真正的同步。其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

  

  

  通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:

*   保存测试采样数据到本地机器

*   通过单台机器管理多个jmeter执行引擎。

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

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

  在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过 100 。

  采用JMeter 远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞。

  

  二、分布式部署操作步骤:

  

(1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 

(2) 运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.9.99 和192.168.9.130 作为agent)

(3)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:

查找:
remote_hosts=127.0.0.1
修改为:
remote_hosts=192.168.9.99:1099,192.168.9.130:1099

  (4)启动controller 机子上的jmeter应用jmeter.bat,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。

  其它说明:

  1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。

  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

  

最新文章

  1. javascript运动学教程
  2. Spring profile配置应用
  3. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体
  4. Python 虚拟环境Virtualenv
  5. Eclipse c++环境搭建 并加载OpenCV库 2015最新
  6. PHP编译安装出错configure: error: mcrypt.h not found. Please reinstall libmcrypt的解决办法
  7. [LeetCode] 205. Isomorphic Strings 解题思路 - Java
  8. MySQL----数据的显示位宽
  9. css遗漏
  10. PHP递归解决兔子问题,面试必备
  11. 在nuxt中加入element-ui插件遇到的问题
  12. ROS启动多launch文件
  13. springboot加ES实现全局检索
  14. go 数组 切片 字典 结构体
  15. sqlserver 表操作 SQL篇
  16. 按固定元素数目分割数组- perl,python
  17. python程序爬虫总是崩溃
  18. DNSmasq介绍
  19. EventBus结合rxjava2和retrofit2网络获取
  20. ROADS POJ - 1724(分层最短路)

热门文章

  1. 2015年多校联合训练第一场OO’s Sequence(hdu5288)
  2. 【BZOJ4568】[Scoi2016]幸运数字 倍增+线性基
  3. C# 自定义控件制作和使用实例(winform)(转)
  4. opencv的x64库的版本和vs的版本的对应关系
  5. Netty入门 - 秒懂
  6. mysql系列之4.mysql字符集
  7. mybatis 执行查询时报错 【Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: 】
  8. 【题解】HNOI2013比赛
  9. 【题解】 CF11D A Simple Task
  10. 前后端分离 vue的nginx配置