• 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端口号是否被占用

  • 相关阅读:
    python Json报错json.decoder.JSONDecodeError
    jupyter notebook改变行间图片大小
    SVM算法核函数的选择
    Linux中长时间运行程序的方法
    python通过多线程并获取返回值
    python多进程multiprocessing Pool相关问题
    pandas.read_sql_query()读取数据库数据用chunksize的坑
    Docker学习——Dockerfile
    Android之自定义ListView(一)
    Java编程思想——初始化与清理
  • 原文地址:https://www.cnblogs.com/codecca/p/13322090.html
Copyright © 2020-2023  润新知