性能测试监控工具jmeter+grafana

1、什么是性能测试监控体系?
为什么要有监控体系?
原因
1、项目-日益复杂(内部除了代码外,还有中间件,数据库)
2、一个系统,背后可能有多个软/硬件组合支撑,影响性能的因素可能是任意一个组件,如果仅仅是通过TPS、RT、吞吐量这些单个目标去分析,会占用大量的时间,所以我们需要用到监控体系

影响性能的因素有很多,我们可以从以下几个层面去分析:
网络问题:带宽是否足够,分析有没有丢包
服务层问题:TPS、RT、错误率、异常、垃圾回收
中间件问题:超时、线程池、缓存命中、消息积压
数据库层面:锁、索引、慢SQL
服务器层面:CPU、内存、磁盘

以上影响因素中服务层问题是最能反应问题所在,因为:服务层问题:反应的是当前负载下性能表现,这是结果
但是为什么是这个数据?哪些东西影响了他?怎么优化?这才性能测试的价值所在

测试手法:通过基准测试+负载测试,看到对应结果
核心概念任何一个环节有性能问题,这个程序一定有性能问题

如果我们需要详细点去分析问题可能还需要将上面例举点影响因素全部分析一遍,这会花费大量的时间且用到大量的插件这时我们需要需要一个工具能把基础监控、指标监控、业务监控、链路监控都放在一起去供我们查看––––grafana
grafana:负责展示测试数据,能支持长时间的测试

2、监控体系的面板数据是怎么来的?
jmeter配置后端监听器,把jmeter数据提交到InfluxDB时序数据库进行数据库保存再传给grafana展示
(这四个端都是独立的)
在这里插入图片描述
tips:如果当grafana没有显示图表时怎么分析问题?
答:influxDB配置是否有问题——>jmeter是否有误(一级一级向上排查)

3、怎么去搭建监控?
首先准备好grafana和influxDB安装包(安装包,会放入资源库,自取)
在这里插入图片描述
打开 Xshell工具 (可在英文官网下载免费版本)
在这里插入图片描述
打开xshell工具后,点击「新建文件传输」
在这里插入图片描述
会弹出文件传输框
在这里插入图片描述

这样我们就可以把本机的安装包文件直接复制到linux系统,
上传过程中也能看到对应的进程
在这里插入图片描述
安装完后,我们在Xshell中通过输入ls命令查看一下目录,找到存放grafana的文件,cd 文件名称进入该文件夹并找到对应文件
在这里插入图片描述
然后我们通过命令sodo yum install -y 文件名称安装grafana(注意⚠️,yum命令环境需要提前安装,请在资源包中查看对应资源包)
在这里插入图片描述
我们可以尝试ping 一下百度,检查一下网络是否正常(如遇问题请查看另外一篇文章**《虚拟机及网络配置》**)
在这里插入图片描述
安装完后,输入命令重新加载一下收获程序配置sudo systemctl daemon-reload
然后通过命令sudo systemctl start grafana-server去启动一下grafana
再通过命令sudo systemctl status grafana-server检查一下是否启动成功,如果出现failed表示启动失败,出现active表示启动成功
在这里插入图片描述
在这里插入图片描述
启动完之后我们就可以通过网页端去访问了(网址:虚拟机的ip+端口3000)grafana端口默认为3000,默认账号密码都是admin
在这里插入图片描述

进入grafana后,我们目前需要关注两个地方「Dashboards」和「Data souces」
Dashboards:我们可以通过import 来导入jmeter文件
Data souces :引进influxdb 数据库作为数据源来使用(用于传入数据)
在这里插入图片描述
在这里插入图片描述

设置开机启动命令
sudo systemctl enable grafana-server.service,虚拟机开机时自动启动grafana
sudo systemctl enable influxdb.service,虚拟机开机时自动启动InfiuxDB
在这里插入图片描述

开机启动之后,我们进入输入influx进入对应的环境,然后创建一个数据库名词为jmeter的数据库create database jmeter,创建完后退出influxDB,输入命令exit
在这里插入图片描述
接着我们打开jmter,并添加一个「后端监控器」
在这里插入图片描述
添加完后,这里我们需要注意的是:后端监听器实现一定要选对,不然数据传输不成功
在这里插入图片描述
然后我们去修改InfluxdbURL,IP地址,输入我们需要进行测试的虚拟机IP(已经安装了influxdb的虚拟机) +8086端口
在这里插入图片描述

配置好后,jmeter的数据会正常传入influxDB数据库中,然后回到grafana,配置对应的influxdb来接收数据
操作步骤:进入「Data sources」––点击「Add data source」––选择并点击「InfluxDB」––在http中输入测试机的IP地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入数据库名词,请求选择get请求,最后点击保存
在这里插入图片描述
到这里influxDB就配置完了,配置成功的话页面会弹出对应提示
在这里插入图片描述

接着我们还需要配置grafana,进入「Dashboard」––点击「import」
在这里插入图片描述
然后我们需要上传json文件,(对应json文件会放在本文章对应的资源包中)
在这里插入图片描述
上传完json包后––DB name需要选择influxDB––然后输入数据库名词jmeter(这是我们自己创建的名称)––最后点击import
在这里插入图片描述
成功之后弹出数据大屏,可以通过刷新页面的方式来刷新数据
在这里插入图片描述
最后我们启动一下虚拟机的服务器,然后到jmeter中点击「运行」
监控到的数据会在数据大屏中显示(测试情况可以直接分享网页链接给到领导查看)
在这里插入图片描述

4、理解性能测试到底在分析什么?
性能测试在做什么?––通过我们给定的场景,去看服务器的表现形式
工作流程:
接到需求:把项目的性能测试一下––目标:能扛住多少并发?(瓶颈)
我们需要做的事情:确认我们的资源(我不用一个人去解决所有问题!)
tips:如果安排的人不懂性能测试(你就在测试环境测)沟通:这么测试没用,结果不会准
性能测试计划:因为测试环境与生产环境不一致,所以测试结果不一定准确
测试环境的部署与搭建:不用自己去部署项目,可以找开发帮忙搭建
性能测试:初期-我们只需要干两件事––找到对应流程中的接口(如果不确定,可以用录制的方式找)写到测试计划中(还需要找架构师确认我们初期选择的接口是否有遗漏

手法:
1、找瓶颈––基准测试数据+自己的推论,找到单接口吞吐量xxxx,
2、梯度压测––找到结论
3、上下浮动10%找到真正的瓶颈值为多少并写入测试报告中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27996.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】Logistic回归#1基于Scikit-Learn的简单Logistic回归

主要参考学习资料: 《机器学习算法的数学解析与Python实现》莫凡 著 前置知识:线性代数-Python 目录 问题背景数学模型类别表示Logistic函数假设函数损失函数训练步骤 代码实现特点 问题背景 分类问题是一类预测非连续(离散)值的…

频域分析:利用傅里叶变换(Fourier Transform)对图像进行深度解析

在图像处理和计算机视觉领域,傅里叶变换(Fourier Transform)是一项基础而强大的工具。它将时域信号(如图像)转化为频域信号,为我们提供了图像的频率特性,这对于图像的分析、压缩、去噪和特征提取…

WPF+WebView 基础

1、基于.NET8&#xff0c;通过NuGet添加Microsoft.Web.WebView2。 2、MainWindow.xaml代码如下。 <Window x:Class"Demo.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/win…

Python----数据分析(Matplotlib二:绘图一:折线图,条形图,直方图)

一、折线图 折线图是一种常用的数据可视化工具&#xff0c;它主要用于展示随时间或有序类别变化的数据趋势。 plt.plot(x, y, fmt, **kwargs) 名称描述x这个参数是数据点的 x 轴坐标&#xff0c;可以是一个列表或者数组。如果 x 没有被指 定&#xff0c;那么它默认为 range(l…

利用Adobe Acrobat 实现PPT中图片分辨率的提升

1. 下载适用于 Windows 的 64 位 Acrobat 注册方式参考&#xff1a;https://ca.whu.edu.cn/knowledge.html?type1 2. 将ppt中需要提高分辨率的图片复制粘贴到新建的pptx问价中&#xff0c;然后执行“文件—>导出---->创建PDF、XPS文档” 3. 我们会发现保存下来的distrib…

从零开始实现机器臂仿真(UR5)

1. UR5软件配置 # 安装 MoveIt! 依赖 sudo apt install ros-humble-moveit ros-humble-tf2-ros ros-humble-moveit-setup-assistant ros-humble-gazebo-ros-pkgs # 安装 UR 官方 ROS2 驱动 sudo apt update sudo apt install ros-humble-ur-robot-driver ros-humble-ur-descri…

Jupyter Notebook 入门教程

Jupyter Notebook 是一个功能强大的交互式计算环境&#xff0c;广泛应用于数据科学、机器学习和数据分析领域。它允许用户在浏览器中创建和共享包含代码、文本、数学公式、图表等的文档。本文将为您提供一份简明的 Jupyter Notebook 入门教程&#xff0c;帮助您快速上手。 1. 什…

【大模型原理与技术】1.2基于学习的语言模型

机器学习的要素&#xff1a; 训练数据 假设类 归纳偏置 学习算法 学习范式 机器学习的过程&#xff1a; 在某种学习范式下&#xff0c;基于训练数据&#xff0c;利用学习算法&#xff0c;从受归纳偏置限制的假设类中选取出可以达到学习目标的假设&#xff0c;该假设可以泛化到…

抽奖系统(从0-1)(上)

hu项目的开发流程介绍 1. 项目启动阶段 • 项⽬概述&#xff1a;介绍项⽬的背景、⽬标和预期成果。 • 团队组建&#xff1a;建跨职能团队&#xff0c;包括产品经理、UI/UX 设计师、开发⼈员、测试⼈员等。 • ⻆⾊定义&#xff1a;明确团队中各个⻆⾊的职责和⼯作内容。 2. 需…

Python第十三课:数据库交互 | 信息帝国的基石

&#x1f3af; 本节目标 理解SQL与NoSQL的核心差异掌握SQL基础语法与设计范式学会使用ORM简化数据库操作开发实战项目&#xff1a;电商订单系统掌握索引优化与事务管理 1️⃣ 数据库理论基石&#xff08;先懂原理再写代码&#xff09; &#x1f4a1; 数据库类型对比 &#…

GPU/CUDA 发展编年史:从 3D 渲染到 AI 大模型时代

目录 文章目录 目录1960s~1999&#xff1a;GPU 的诞生&#xff1a;光栅化&#xff08;Rasterization&#xff09;3D 渲染算法的硬件化实现之路学术界算法研究历程工业界产品研发历程光栅化技术原理光栅化技术的软件实现&#xff1a;OpenGL 3D 渲染管线设计1. 顶点处理&#xff…

流程设计5原则与流程执行5要点

流程设计5原则与流程执行5要点 汉捷咨询 胡红卫 企业创造价值、为客户服务是通过业务流来实现的&#xff0c;而业务流程是业务流的载体和表现形式。把业务流程设计好、执行好&#xff0c;就能够持续提升企业各项活动的质量和效率&#xff0c;确保端到端的优质交付&#xff0c…

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程 简介 multiprocessing 模块 Process 类 僵尸进程与孤儿进程 简介 在前面的进程理论的介绍当中我们已经介绍了进程的概念、并发与并行的区别以及进程并发的实现理论&#xff0c;这些都…

Linux : 环境变量

目录 一 环境变量 1.基本概念 二 常见环境变量 三 查看环境变量的方法 1.env:查看系统中所有环境变量 2. echo $NAME 四 如何不带路径也能运行的自己的程序 1.将自己的程序直接添加到PATH指定的路径下 五 环境变量与本地变量 1.本地变量 2. 环境变量 六C、C中main()…

【YashanDB认证】yashandb23.3.1 个人版单机部署安装实践

YCA报名链接如下: YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情 目前免费 主要参考文档&#xff1a; 单机&#xff08;主备&#xff09;部署 | YashanDB Doc 另外还参考摩天轮文章&#xff1a; YashanDB 23.2.9.101 企业版安装步骤抢先看&#xff01; - 墨天轮 …

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为&#xff1a;https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具&#xff0c;支持Windows和macOS操作系统&#xff1b;提供丰富的PDF编辑和转换功能&#xff0c;适用于日常工…

docker-compose安装anythingLLM

1、anythingLLM的docker-compose文件 version: 3.8 services:anythingllm:image: mintplexlabs/anythingllm:latestcontainer_name: anythingllmports:- "23001:3001"cap_add:- SYS_ADMINenvironment:# Adjust for your environment- STORAGE_DIR/app/server/storage…

maven推送jar包到nexus

1.背景2.推送jar包到nexus3.从nexus拉取jar包4.release和snapshot区别 1.背景 本地虚拟机centos7.9(110.110.110.100)安装好了nexus 下面演示把本地的maven项目打包推送到nexus。 2.推送jar包到nexus 我项目的命名如下: 下面演示把这个项目jar包推送到nexus仓库 <groupI…

微信小程序上如何使用图形验证码

1、php服务器生成图片验证码的代码片段如下&#xff1a; 注意红框部分的代码&#xff0c;生成的是ArrayBuffer类型的二进制图片 2、显示验证码 显示验证码&#xff0c;不要直接image组件加上src显示&#xff0c;那样拿不到cookie&#xff0c;没有办法做图形验证码的验证&…

comfyui使用ComfyUI-AnimateDiff-Evolved, ComfyUI-Advanced-ControlNet节点报错解决

comfyui使用animate-diff生成动画&#xff0c;各种报错解决 报错1&#xff1a; ‘cond_obj’ object has no attribute ‘hooks’ 报错2&#xff1a; AdvancedControlBase.get_control_inject() takes 5 positional arguments but 6 were given 报错3&#xff1a; ‘ControlN…