zoukankan      html  css  js  c++  java
  • linux部署分布式jmeter压测环境

    • 为什么要在linux上上做压测,而不是在GUI界面?

      因为GUI界面本身会消耗服务器资源,其次GUI运行的结果一般是保存在jmeter运行内存中,导致在做长时间压测得时候,内存占用会越来越高,最终可能导致工具报错或者宕机风险,影响测试。

      压测使用机器最好和服务部署的机器在同一网络下,减少网络原因导致的性能问题,这样从服务部署机器镜像一台机器就可以作为负载机使用,更加方便。。

    • 部署方式

      1.安装JDK

        网上一大堆,不在赘述

      2.部署jmeter

       (1)在官网http://jmeter.apache.org/download_jmeter.cgi  下载所需要的jmeter版本,我这里下载的是5.1的版本apache-jmeter-5.1.1.zip

       (2)上传到linux机器,并解压缩unzip  apache-jmeter-5.1.1.zip ,生成apache-jmeter-5.1.1目录

       (3)环境变量配置:

        注意路径改为自己上传的路径:    

        export JMETER_HOME=/opt/apache-jmeter-5.1.1

        export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

        export PATH=$JMETER_HOME/bin:$PATH

       (4)环境变量立即生效

        source /etc/profile

       (5)查看安装结果

        jmeter -v

        

       3.分布式部署

        我这里是按照三台机器规模部署的,提前在三套机器上分别部署jmeter环境(三台机器上jmeter版本最好一致)

       (1)master节点配置

        master节点可以使用windows也可以使用linux,因为master在工作过程中不直接参与压测,而是起到一个脚本调度,控制slave发起压测的作用,因此本身消耗不大,我这里使用的是linux作为master

        修改jmeter配置文件jmeter.properties 中remote_host为两个slave节点的IP和端口

        remote_hosts=10.8.1.143:1099,10.8.1.144:1099

       (2)slave节点配置

        修改jmeter配置文件/bin/jmeter.properties ,找到并取消这段配置的注释 server.rmi.ssl.disable=false ,false改成true。

        启动slave节点

        jmeter-server -Djava.rmi.server.hostname=10.8.11.143 ,启动 anget 节点。jmeter-server 后面的参数指定 agent 的 IP 

        启动成功之后ps -ef |grep jmeter能够看到jmeter进程

      4.启动压测

       (1)启动slave节点

          nohup  ./jmeter-server  -Djava.rmi.server.hostname=10.8.1.143

       (2)上传所需的jmx脚本和参数化数据到指定路径

       (3)启动压测

        ./jmeter -n  -t /home/cloud-user/msg_test.jmx  -R  10.8.11.143,10.8.11.144  -l ../result/testReport.jtl  -e -o ../report/resultReport    

        命令说明:

          -t  制定需要执行的jmx脚本全路径

          -R  配置两个slave节点的ip地址(和slave节点配置文件jmeter.properties中remote_host配置一样),中间用逗号隔开

          -l   输出测试结果(jtl格式)

          -e  输出图表结果

          -o  报告输出的路径

        (4)导出报告

     
    —————————————————————————————————————————————————————————————————————————————————————————————————————————————— 保持学习的劲头
  • 相关阅读:
    Mysql数据库中的EXISTS和NOT EXISTS
    (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)
    SICP 习题 (1.13) 解题总结
    [Usaco2009 Feb]Revamping Trails 堆优化 Dijkstra
    (4)事件处理——(3)代码执行的顺序(Timing of code execution)
    【Android】Handler的应用(一):从服务器端加载JSON数据
    HDU 4498 Function Curve (分段, simpson)
    关于 android Intent 传对象和对象数组的一些操作
    mahout算法源码分析之Collaborative Filtering with ALS-WR 并行思路
    javaScript数据类型与typeof操作符
  • 原文地址:https://www.cnblogs.com/qkblogs/p/14498691.html
Copyright © 2011-2022 走看看