性能测试监控工具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%找到真正的瓶颈值为多少并写入测试报告中
相关文章:
性能测试监控工具jmeter+grafana
1、什么是性能测试监控体系? 为什么要有监控体系? 原因: 1、项目-日益复杂(内部除了代码外,还有中间件,数据库) 2、一个系统,背后可能有多个软/硬件组合支撑,影响性能的因…...
016.3月夏令营:数理类
016.3月夏令营:数理类: 中国人民大学统计学院: http://www.eeban.com/forum.php?modviewthread&tid386109 北京大学化学学院第一轮: http://www.eeban.com/forum.php?m ... 6026&extrapage%3D1 香港大学化学系夏令营&a…...
CS144 Lab Checkpoint 0: networking warm up
Set up GNU/Linux on your computer 我用的是Ubuntu,按照指导书上写的输入如下命令安装所需的软件包: sudo apt update && sudo apt install git cmake gdb build-essential clang \ clang-tidy clang-format gcc-doc pkg-config glibc-doc tc…...
靶场之路-VulnHub-DC-6 nmap提权、kali爆破、shell反连
靶场之路-VulnHub-DC-6 一、信息收集 1、扫描靶机ip 2、指纹扫描 这里扫的我有点懵,这里只有两个端口,感觉是要扫扫目录了 nmap -sS -sV 192.168.122.128 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.4p1 Debian 10deb9u6 (protoc…...
给没有登录认证的web应用添加登录认证(openresty lua实现)
这阵子不是deepseek火么?我也折腾了下本地部署,ollama、vllm、llama.cpp都弄了下,webui也用了几个,发现nextjs-ollama-llm-ui小巧方便,挺适合个人使用的。如果放在网上供多人使用的话,得接入登录认证才好&a…...
3月5日作业
代码作业: #!/bin/bash# 清空目录函数 safe_clear_dir() {local dir"$1"local name"$2"if [ -d "$dir" ]; thenwhile true; doread -p "检测到 $name 目录已存在,请选择操作: 1) 清空目录内容 2) 保留目…...
【MySQL】增删改查
目录 一、新增(Create) 单行数据 全列插入 多行数据 指定列插入 插入时间 二、查询(Retrieve) 全列查询 指定列查询 查询字段为表达式 别名 去重:DISTINCT 排序:ORDER BY 条件查询࿱…...
【三维生成】StarGen:基于视频扩散模型的可扩展的时空自回归场景生成
标题:《StarGen: A Spatiotemporal Autoregression Framework with Video Diffusion Model for Scalable and Controllable Scene Generation》 项目:https://zju3dv.github.io/StarGen 来源:商汤科技、浙大CAD、Tetras.AI 文章目录 摘要一、…...
线反转法实现矩形键盘按键识别
由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 线反转法 第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。 第2步&…...
在 Element Plus 的 <el-select> 组件中,如果需要将 <el-option> 的默认值设置为 null。 用于枚举传值
文章目录 引言轻松实现 `<el-option>` 的默认值为 `null`I 实现方式监听清空事件 【推荐】使用 v-model 绑定 null添加一个值为 null 的选项处理 null 值的显示引言 背景:接口签名规则要求空串参与,空对象不参与签名计算 // 空字符串“” 参与签名组串,null不参与签…...
大白话面试中应对自我介绍
在面试中,自我介绍是开场的关键环节,它就像你递给面试官的一张“个人名片”,要让面试官快速了解你并对你产生兴趣。下面详细讲讲应对自我介绍的要点及回答范例。 一、自我介绍的时间把控 一般面试中的自我介绍控制在1 - 3分钟比较合适。时间…...
Pytorch构建LeNet进行MNIST识别 #自用
LeNet是一种经典的卷积神经网络(CNN)结构,由Yann LeCun等人在1998年提出,主要用于手写数字识别(如MNIST数据集)。作为最早的实用化卷积神经网络,LeNet为现代深度学习模型奠定了基础,…...
元宇宙崛起:区块链与金融科技共绘数字新世界
文章目录 一、引言二、元宇宙与区块链的深度融合三、区块链在元宇宙金融中的应用四、金融科技在元宇宙中的创新应用五、面临的挑战与机遇《区块链与金融科技》亮点内容简介获取方式 一、引言 随着科技的飞速发展,元宇宙概念逐渐走进人们的视野,成为数字…...
React Native 实现滑一点点内容区块指示器也滑一点点
效果图如上,内容滑一点点,指示器也按比例话一点点,列表宽度跟数据有关。 实现思路如下: 1.监听列表滑动事件,获取列表横向滑动距离,假设为A; 2.获取列表的宽度,及列表可滑动的宽度…...
怎么写C#命令行参数程序,及控制台带参数案例(程序完整源码)下载
C#命令行参数解析控制台带参数编写案例(程序完整源码)下载链接 https://download.csdn.net/download/luckyext/90434790 在CMD命令窗口,输入ping 、ipconfig等这样的命令,大家应该都知道,但很多同学可能不知道怎么写…...
全国青少年航天创新大赛各项目对比分析
全国青少年航天创新大赛各项目对比分析 一、比赛场地对比 项目名称场地尺寸场地特点组别差异筑梦天宫虚拟三维场景动态布局,小学组3停泊处,初高中组6停泊处;涉及传送带、机械臂、传感器等虚拟设备。初中/高中组任务复杂度更高,运…...
基于RAG的法律条文智能助手
文章目录 前言一、 项目背景与需求设计二、 数据收集与整理三、 核心实现流程1. 配置与模型初始化1. 配置区2. 模型初始化(init_models 函数)3. 数据加载与验证(load_and_validate_json_files 函数)4. 节点生成(create…...
智能对讲机:5G+AI赋能下的石油工业新“声”态
在浩瀚的能源版图上,中国正以非凡的“深度”探索着石油资源的奥秘。随着5G技术的不断成熟与普及,曾经“满山遍野找信号”的石油工人,如今已步入了一个全新的通信时代。在这个时代里,智能对讲机成为了连接指挥中心与一线工人的桥梁…...
leetcode日记(77)子集Ⅱ
不知道为什么看到这道题就很头痛…… 其实只要掌握nums不包含重复元素的情况下的代码就行了。 若nums不能包含重复元素,那么使用回溯很容易就能写出来: class Solution {void hs(vector<int> v,int x,vector<int> r,vector<vector<…...
Linux tar命令
压缩解压缩 1. tar 命令 语法: tar [主选项 辅选项] 文件或目录 参数功能-c创建新的归档文件(打包)-x从归档文件中提取文件(解包)-f <文件名>指定归档文件名-v显示操作的详细信息-z通过gzip压缩归档文件-j通…...
从OpenMV2到4代,我踩过的那些坑:画面变绿、传感器接触不良与内存擦除的避坑实录
从OpenMV2到4代:硬件升级中的稳定性挑战与实战解决方案 作为一名长期使用OpenMV系列开发视觉项目的工程师,我从OpenMV2一路升级到4代,见证了硬件性能的飞跃,也深刻体会到稳定性问题带来的困扰。其中最令人头疼的莫过于"画面变…...
【LLM推理加速】Lookahead:无损加速新范式,如何用Trie树与多分支策略突破IO瓶颈
1. 为什么我们需要无损推理加速? 大语言模型在实际应用中面临的最大痛点之一就是推理速度慢。想象一下,当你向AI助手提问时,每次等待回复都要花上好几秒,这种体验有多糟糕。传统的加速方法比如量化(把模型参数从16位压…...
深度神经网络(DNN)百科全书从“深“到“无限深“
一、开篇:深度的奇迹 2012 年 9 月 30 日。 ImageNet 挑战赛的结果在 Florence 公布。所有人都以为冠军会延续过去 3 年的传统——传统计算机视觉方法(SIFT、HOG、SVM)小幅领先。 但那一年,一个叫 AlexNet 的"怪物"出现了。8 层的卷积神经网络,Top-5 错误率 …...
告别Provider嵌套!用Naive UI的createDiscreteApi一键管理message、dialog、loadingBar
告别Provider嵌套!用Naive UI的createDiscreteApi一键管理全局反馈组件 在构建现代Vue 3应用时,全局反馈机制如消息提示(message)、对话框(dialog)、通知(notification)和加载条(loadingBar)是不可或缺的交互元素。传统方案需要在组件树中层层嵌套Provid…...
ESP32玩转1.8寸LCD屏:用TFT_eSPI库做个桌面小时钟(附完整代码)
ESP32打造高颜值桌面时钟:从TFT_eSPI库到完整项目实战 在创客的世界里,将硬件与代码结合创造出实用又有趣的项目总是令人兴奋。今天我们要用ESP32开发板和1.8寸ST7735驱动的LCD屏幕,打造一个功能完善、界面美观的桌面电子时钟。这个项目不仅适…...
别再只盯着USB3.0速度了!深入链路训练状态机(LTSSM),搞懂设备插上后到底经历了什么
USB3.0链路训练状态机:从插入到识别的技术全景解析 当我们将一个USB3.0设备插入电脑时,那个短暂的"识别"过程背后,隐藏着一套精密的数字握手协议。这个看似简单的动作,实际上触发了物理层到协议层的多阶段协同工作&…...
FFXIV TexTools:掌握《最终幻想14》模组制作的终极指南
FFXIV TexTools:掌握《最终幻想14》模组制作的终极指南 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI FFXIV TexTools是一款专为《最终幻想14》玩家设计的专业模组制作与管理框架,自2016年…...
Thorium浏览器实战指南:为什么这个Chromium分支能让你告别卡顿与隐私泄露?
Thorium浏览器实战指南:为什么这个Chromium分支能让你告别卡顿与隐私泄露? 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, li…...
接入Taotoken后我的月度API账单变得清晰可追溯且易于管理
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 接入Taotoken后我的月度API账单变得清晰可追溯且易于管理 在开发工作中,我们常常需要调用不同的大模型API来满足多样化…...
北京房山区浇筑阁楼测评:天顺诚达工艺佳但价格略高,适合这类
为了避免违反规则,以下内容去除了联系方式等违规信息。随着对居住空间利用需求的增加,在北京房山区浇筑阁楼成为不少人的选择。本次测评旨在为对北京房山区浇筑阁楼服务感兴趣的人群,客观呈现相关服务的情况。参与本次测评的是北京天顺诚达建…...
