使用Jmeter在linux环境实现分布式负载

分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能

  • 一、Jmeter分布式执行原理

    1. Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)
    2. 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的
    3. 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总
    4. 分布式测试原理:如下图
  • 二、执行机(slave)配置
    1. slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压
    2. 默认一般给的用户不是管理员,则修改用户环境变量即可:vi ~/.bashrc ,在文件末尾添加该行 export PATH=$PATH:/home/mdrsopen/apache-jmeter-4.0-performance/bin ,此路径为jmeter的的路径,修改完毕,输入:wq退出,执行 source?~/.bashrc

      • 输入jmeter -v,出现下图证明配置成功
    3. 进入jmeter的bin目录,修改jmeter-server文件,指定主机ip
      • 去掉RMI_HOST_DEF前面的#,末尾的XX改成当前主机ip
    4. 可以对负载机端口进行修改,默认为1099,也可以修改成自己需要的端口,修改完毕,输入:wq退出
    5. 输入./jmeter-server启动负载机,出现如下界面,证明启动成功
    6. 多台slave的话,重复1~5步骤就好
  • 三、调度机(master)配置
    1. 脚本:一个devops平台的查询接口
    2. 找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(负载机端口有一台自定义为1234,有一台默认为1099):remote_hosts=10.16.69.174:1234,10.16.18.21:1099
      • 多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port
    3. 打开Jmeter,选择运行,有启动、远程启动、远程全部启动三个选项:
      启动:就是启动当前master(调度机),把调度机当负载机单独执行
      远程启动:可以选择执行需要的负载机
      远程全部启动:顾名思义,就是启动所有的负载机
    4. 选择远程启动-->10.16.18.21:1099
      • master结果,这里我只启动了10.16.18.21:1099这一台slave,所以只有一个结果(线程数和循环次数都是1):
      • slave控制台信息:
    5. 选择远程启动-->远程全部启动:
      • master结果,全部启动,我配置了2台slave,所以有两次执行结果
  • 四、调度机(slave)使用命令执行分布式测试
    • widows环境执行

      • jmeter -n -t 监听设置.jmx -r -l log.jtl
      • 参数说明 :
        -n ?告诉jmeter使用非GUI模式执行测试
        -t ? 执行的测试脚本名
        -r? 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
        -l? 结果文件,如果不写路径,则在执行目录生成
    • linux环境命令相同
  • 五、其它说明:
    1. 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
    2. 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
    3. 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
    4. 执行机(slave)设置的端口,首先要保证未被占用,可以使用该命令进行查询,netstat -anp|grep 端口? 如果查询为空则可以进行配置,如下
    5. 查询有值,则代表该端口已经被占用,需要换一个端口

原文地址:http://blog.51cto.com/6183574/2322003

时间: 2024-10-01 10:07:38

使用Jmeter在linux环境实现分布式负载的相关文章

ant+jmeter 在Linux环境下接口自动化测试环境搭建(2)

上一篇讲过在Windows下搭建的方法,今天这里写一下在Linux环境下搭建的方法. 实验准备:Linux服务器一台. 服务器上安装好jdk,配置好环境变量. 服务器上配置好ant. 工具准备: Jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Jmeter下载地址 http://jmeter.apache.org/ Ant下载地址 http://ant.apache.org/ 环境准备: 所以

Jmeter - 在Linux环境安装Jmeter - 在Windows环境安装Jmeter

当配置完Jmeter运行的环境之后,就可以开始安装Jmeter了. 为什么既要告诉各位"在Linux系统内安装Jmeter",又要告诉各位"在Windows系统内安装Jmeter"?因为当我们在构建1个测试计划的步骤是: (1)首先,Windows的Jmeter图形化窗口内,构建1个测试计划 (2)然后,把构建好的这个测试计划上传到Linux系统的测试机 (3)最后,在Linux系统的测试机,用Jmeter做性能测试 也就是说,我们在Windows.Linux的电脑上,都会用到Jmeter. 那

JMeter在linux上分布式压测遇到的坑(三)

master和slave机要在同一网段内,才能做分布式(Jmeter要配环境变量,这样不用手动起server) 分布式不成功,解决方案: 1.master端和slave端要ping通 2.ping通后,telnet ip port (Linux端),看一下1099端口是否被占用 3.防火墙 4.jmeter的log,如果请求发过去,但是没有返回结果,看看网段的问题 主要步骤: master端修改: 1.修改remote_hosts=ip:port:改成要启动的Linux机的ip以及端口 slav

JMeter在Windows Linux环境下的安装使用

一.Windows环境下测试 1.下载: 官网地址:http://apache.fayea.com//jmeter/binaries/apache-jmeter-2.12.zip 2.打开: 进入bin目录下 运行jmeter.bat 3.使用: 0>.在测试计划中添加一个线程组 1> 配置线程组,主要是取样器错误后执行动作.线程数.循环次数 2> 添加一个测试对象 即取样器.主要参数:IP,Port,协议,方法,路径,传递的参数. 其中参数部分,可以直接在Parameters框体中填入

JMeter分布式负载测试(吞吐量控制器)

在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划. 出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载.这些网页包括: 主页: www.yiibai.com 第1页(Java): www.yiibai.com/cplusplus/ 第2页(C语言): www.yiibai.com/cprogramming 第3页(Python): www.yiibai.com/python 注意: 假设创建了10个虚拟用户(线程)来在

mosquitto在Linux环境下的部署/安装/使用/测试

mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. 使用传统源码安装步骤: 步骤1:http://mosquitto.org/files/source/官网下载源码,放到Linux环境中.解压后,找到主要配置文件config.mk,其中包含mosquitto的安装选项,需要注意的是,默认情况下mosquitto的安装需要OpenSSL(一个强大的安全

从零教你在Linux环境下(ubuntu)如何编译hadoop2.4

问题导读: 1.如果获取hadoop src  maven包?2.编译hadoop需要装哪些软件?3.如何编译hadoop2.4?扩展:编译hadoop为何安装这些软件? 本文链接 http://www.aboutyun.com/thread-8130-1-1.html 一.首先下载hadoop源码包下载的方式还是比较多的1.svn的方式svn下载首先需要安装SVN,如果想尝试使用svn,可以参考源码管理.获取网络源码工具:TortoiseSVN使用手册,hadoop的svn下载地址点此2.压缩

Linux环境编程之共享内存区(一):共享内存区简介

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD.通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘.

深度分析LINUX环境下如何配置multi-path

首先介绍一下什么是多路径(multi-path)?先说说多路径功能产生的背景,在多路径功能出现之前,主机上的硬盘是直接挂接到一个总线(PCI)上,路径是一对一的关系,也就是一条路径指向一个硬盘或是存储设备,这样的一对一关系对于操作系统而言,处理相对简单,但是缺少了可靠性.当出现了光纤通道网络(Fibre Channle)也就是通常所说的SAN网络时,或者由iSCSI组成的IPSAN环境时,由于主机和存储之间通过光纤通道交换机或者多块网卡及IP来连接时,构成了多对多关系的IO通道,也就是说一台主机