zoukankan      html  css  js  c++  java
  • Jmeter分布式

    在进行性能测试的时候,随着压力的不断增大,会出现tps的瓶颈。

    出现瓶颈,会有两个原因,1.服务器导致的瓶颈 ,2压力不够。

    如果是压力不够的情况,要么换更好的机器进行压测,或者多台机器进行分布式压测。

    Jmeter 如何开展分布式?

    原理如下:

    1.Jmeter分布式压测时,一台机器作为master,其他的则为slave,master负责请求的分发,slave负责执行。

    2.执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。

    3.执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。

    这里有一个坑,如果slave 和master是多网卡的机器,master去slave执行的时候,会把网卡中的任意一个网卡ip传过去,最后slave执行完后,把结果回传给master,如果这时回传给master是一个错误的ip,则会导致请求超时的情况,导致失败。

    正确步骤如下:

    1.启动slave,在slave机中jmeter-server中

    windows 修改RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82(slave机的ip)

    运行jmeter-server,Windows运行jmeter-serve.bat

    linux:

     ./jmeter-server -Djava.rmi.server.hostname=10.120.11.82(slave机的ip)

    2.启动master

    双网卡需要注意:master机需要指定自己机器的ip,要不则会出问题。

    window:

    新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214(master 的ip)

    修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

    linux:

    新增 rmi_host=“-Djava.rmi.server.hostname=10.120.11.214”(master 的ip)

    修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"

     修改完了后,开始压力测试:

    windows:

    修改jmeter.properties,

    remote_hosts=10.120.11.82:1099(更换为slave的ip)

    远程启动这台机器

    linux:

    ./jmeter -n -t testPlan.jmx  -R 115.28.108.130 -l remote.jtl

    linux下运行结果存在remote.jtl中。

    注意:master和slave机中的jmeter版本必须一致(小版本也得一致)。

    java的版本也得一致,不能一个java7一个java8.

  • 相关阅读:
    弹性盒布局(Flexbox布局)
    CSS子元素在父元素中水平垂直居中的几种方法
    Vue中watch用法详解
    深入理解vue中的slot与slot-scope
    Spring 源码学习 03:创建 IoC 容器的几种方式
    Spring 源码学习 02:关于 Spring IoC 和 Bean 的概念
    Spring 源码阅读环境的搭建
    DocView 现在支持自定义 Markdown 模版了!
    Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!
    线程池 ThreadPoolExecutor 原理及源码笔记
  • 原文地址:https://www.cnblogs.com/lzlfighter/p/6706952.html
Copyright © 2011-2022 走看看