zoukankan      html  css  js  c++  java
  • [Jmeter]用Jmeter做压力测试(分布式)

     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 客户端线程数不应超过 10 0 。

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

    使用多台机器产生负载的操作步骤如下:

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

      使用多台机器产生负载的操作步骤如下:

      (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。然后运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器10.0.4.147 和10.0.4.148 作为agent)

      注意:检查agent服务器上jmeter-server 文件,查看设置端口为多少,例如

        

          从上图可以看到,我们agent如果启用server服务,端口为1099,另外还要留意agent的机子是否开启了防火墙等。  

    还可以启动jmeter-server之后查看日志jmeter-server.log,看启动之后绑定的哪个端口,例如

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

      查找:

      remote_hosts=127.0.0.1

      修改为:     

     remote_hosts=10.0.4.147:1099,10.0.4.148:1099

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

    然后在下方日志栏可以看到是否执行成功

      

    问题以及解决方法:

    问题:

    原因1:

    agent防火墙开着的,需要关闭;

    解决方法:

    linux上执行service  iptables status查看防火墙状态,

    /etc/init.d/iptables stop关闭防火墙

    原因2:

    agent服务没有启动;

    解决方法:

    登陆到agent服务器,找到Jmeter/bin/目录,执行jmeter-server即可

    参考:https://www.cnblogs.com/fnng/archive/2012/12/29/2839420.html

  • 相关阅读:
    iOS开发之窗口和视图
    GCD
    禁止非法用户登录综合设置
    大数减法(C++实现)
    大数加法(C++实现)
    迷宫问题 (BFS ➕输出路径)
    Pots (BFS ➕ 输出路径)
    Shuffle'm Up (map ➕ BFS)
    Prime Path (BFS)
    速算24点
  • 原文地址:https://www.cnblogs.com/amberly/p/10718920.html
Copyright © 2011-2022 走看看