IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> JMeter 分布式压测原理及实战避坑指南 -> 正文阅读

[系统运维]JMeter 分布式压测原理及实战避坑指南

为什么要做分布式?

之前我们讲过如何在Linux环境下,用单机进行压测,但是实际工作中,有时候我们需要用多台机器进行压测。那么什么情况下我们需要用多台机器进行压测呢?当我们一台机器不够的情况下,就需要用多台机器。

那么怎么去鉴定机器到底够不够呢?这个主要看我们压力机的资源(主要判断在CPU,超过80%则表示不够用了)。如果说我们在LInux环境下运行JMter,运行的过程中,是会消耗我们服务器的资源,如cup、内存等。如果说我们机器资源不够了,那么测试出来的数据是不准的。如我们tps压不上去,很有可能就是服务器资源不行了,在这种情况下,我们通常都需要拓展机器。

分布式压测原理

在这里插入图片描述

  • JMeter分布式压测是选择一台作为调度机(master),其他机器作为执行机(slave),当然一台机器也可以既做调度机,也做执行机
  • 调度机执行脚本的视乎,master会将 jmx脚本分发到slave中,slave拿到脚本以后以非GUI的形式开始执行。
  • slave执行完毕知乎,将结果返回给master,并有master进行结果的汇总。

分布式测试步骤:

系统在HOSTS文件中进行类似 本机IP 主机名的配置,如10.0.0.23 zhoucentos,否则启动jmeter server会报错!

首先,我们来查看本机ip和hostname
在这里插入图片描述
查看之后,通过 vi/etc/hosts进行配置,将ip和hostname配置进去并保存。每台机器都配置。

在这里插入图片描述

  • 在每台机器上都部署jmeter

  • 如果java脚本,将java脚本和相关lie包都放在jmeter目录/ext下

  • 将jmeter的场景文件jmx上传到主jmeter的任意位置,参数文件放到每一台压力机上(存放目录要相同)

  • 没台机器修改jmeter.properties文件,ssl.disable=true (去掉注释)
    在这里插入图片描述

  • 在每台机器上进入到jmeter的bin目录下,都启动 nohup ./jmeter-server &(后台启动jmeter-server服务)
    在这里插入图片描述
    查看启动日志,成功了
    在这里插入图片描述

  • 在主jmeter的bin目录下,修改jmeter.properties,将其中的remote_host修改作为压力机的两台机器ip。remote_host=127.0.0.1,192,168.0.102
    在这里插入图片描述

  • 在主jmeter的机器上,执行jmter -n -t xxx.jmx -| result.jtl -r(示例,具体根据目录和路径自定义)

    -r 则表示分布式压测,如果每加,则是单机压测

注意:
1、如果是http脚本,在controller的机器上有脚本文件即可;
2、如果是Java脚本,在每一台机器上都的有脚本文件和依赖的jar包

在这里插入图片描述

可以看到已经执行成功了~

避坑:

这里在执行的过程中,连接从机失败了,主要原因是因为阿里云安全组中没有添加默认端口1099。

命令行配置IP

前面我们在 jmeter.properties 文件中,配置了从机的ip,其实还有一种方式可以不用修改配置文件,命令行的方式可以运行,也可以达到相同的效果。

 jmeter -n -t Linux.jmx -l result3.jtl -R 127.0.0.1,192.168.2.120

温馨提示

如果在分布式压测过程中,想要终止压测,千万不要在Linux上按 ctrl + c 强制终止程序,这样会知道主程序挂了之后,从机未接受到执行,会一直持续运行。当你再次从主机上运行脚本,从机仍然会在上一个脚本的程序中运行。

如果想要终止程序,可以执行命令行./shutdown.sh ,通知master终止程序,然后master 再去通知salve停止运行。

cd 进入到JMeter 的 bin 目录下
输入 ./shutdown.sh 命令停止脚本
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2021-07-11 16:57:23  更:2021-07-11 17:00:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 17:30:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码