性能測試監控工具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.pswp.cn/web/71349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71349.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

互聯網時代如何保證數字足跡的安全,以防個人信息泄露?

用戶在網絡上所做的幾乎所有事情,包括瀏覽、社交媒體活動、搜索查詢、在線訂閱,甚至購物,都會留下一條數據線索,這些數據可用于創建用戶在線身份的詳細檔案。如果這些信息暴露,惡意行為者可能會利用它們將用戶置于各種…

C# IEquatable<T> 使用詳解

總目錄 前言 在 C# 開發中&#xff0c;IEquatable<T> 是一個泛型接口&#xff0c;用于定義類型的相等性比較邏輯。通過實現 IEquatable<T>&#xff0c;可以為自定義類型提供高效的、類型安全的相等性比較方法。本文將詳細介紹 IEquatable<T> 的使用方法、應…

web第四天

Dom操作元素 innerText、innerHTML、value(input and textarea用到) 更改屬性&#xff0c;樣式 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

LabVIEW基于IMAQ實現直線邊緣檢測

本程序基于 NI Vision Development 模塊&#xff0c;通過 IMAQ Find Straight Edges 函數&#xff0c;在指定 ROI&#xff08;感興趣區域&#xff09; 內檢測多條直線邊緣。用戶可 動態調整檢測參數 或 自定義ROI&#xff0c;實時觀察識別效果&#xff0c;適用于 高精度視覺檢測…

費曼學習法13 - 數據表格的魔法:Python Pandas DataFrame 詳解 (Pandas 基礎篇)

第二篇&#xff1a;數據表格的魔法&#xff1a;Python Pandas DataFrame 詳解 (Pandas 基礎篇) 開篇提問&#xff1a; 回憶一下&#xff0c;我們上一篇文章學習了 Pandas 的一維數據結構 Series&#xff0c;它可以看作是帶 “標簽” 的列表。 但現實世界中的數據&#xff0c;…

一周學會Flask3 Python Web開發-在模板中渲染WTForms表單視圖函數里獲取表單數據

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 為了能夠在模板中渲染表單&#xff0c;我們需要把表單類實例傳入模板。首先在視圖函數里實例化表單類LoginForm&#xff0c;然…

小紅書湖倉架構的躍遷之路

作者&#xff1a;李鵬霖(丁典)&#xff0c;小紅書-研發工程師&#xff0c;StarRocks Contributor & Apache Impala Committer 本文整理自小紅書工程師在 StarRocks 年度峰會上的分享&#xff0c;介紹了小紅書自助分析平臺中&#xff0c;StarRocks 與 Iceberg 結合后&#x…

數據結構第五節:排序

1.常見的排序算法 插入排序&#xff1a;直接插入排序、希爾排序 選擇排序&#xff1a;直接選擇排序、堆排序 交換排序&#xff1a;冒泡排序、快速排序 歸并排序&#xff1a;歸并排序 排序的接口實現&#xff1a; // 1. 直接插入排序 void InsertSort(int* a, int n); // 2. 希…

BambuStudio學習筆記:FaceDetector類

面檢測器類解析 這段代碼定義了一個名為 FaceDetector 的 C 類&#xff0c;用于處理三維模型中的面檢測。以下是該類的具體說明&#xff1a; 頭文件保護 #ifndef slic3r_FaceDetector_hpp_ #define slic3r_FaceDetector_hpp_這部分代碼防止頭文件被多次包含。 命名空間聲明…

C++發展

目錄 ?編輯C 的發展總結&#xff1a;?編輯 1. C 的早期發展&#xff08;1979-1985&#xff09; 2. C 標準化過程&#xff08;1985-1998&#xff09; 3. C 標準演化&#xff08;2003-2011&#xff09; 4. C11&#xff08;2011年&#xff09; 5. C14&#xff08;2014年&a…

LeetCode 21. 合并兩個有序鏈表(Python)

將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 輸入&#xff1a;l1 [1,2,4], l2 [1,3,4] 輸出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 輸入&#xff1a;l1 [], l2 [] 輸出&#xff1a;[] 示例 3&#xff1a; 輸…

FPGA 配置原理

用戶編程控制的FPGA 是通過加載比特位流配置內部的存儲單元實現的。該存儲單元就是所謂的配置單元&#xff0c;它必須在器件上電后進行配置&#xff0c;從而設置查找表&#xff08;LUT&#xff09;的屬性、連線方式、IOB 電壓標準和其它的用戶設計。 1.配置幀 以Xilinx 公司的…

測試人員如何更好的跟蹤BUG

軟件測試中BUG跟蹤是確保軟件質量的關鍵環節。測試人員不僅需要發現BUG&#xff0c;還需有效管理其狀態&#xff0c;從報告到修復驗證的全過程。如何更好地跟蹤BUG&#xff0c;成為測試人員提升效率的重要課題。本文將詳細探討測試人員可以采用的策略&#xff0c;包括使用工具、…

lamp平臺介紹

一、lamp介紹 網站&#xff1a; 靜態 動態 php語言 .php 作用&#xff1a;運行php語言編寫動態網站應用 lamp Linux Apache MySQL PHP PHP是作為httpd的一個功能模塊存在的 二、部署lamp平臺 1、測試httpd是否可正常返回PHP的響應 2、測試PHP代碼是否可正常連接數據…

2025年滲透測試面試題總結-字某跳動-滲透測試實習生(題目+回答)

網絡安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 字某跳動-滲透測試實習生 滲透流程信息收集如何處理子域名爆破中的泛解析問題繞過CDN尋找真實IPPHPINFO頁面關注…

Spring Boot 自動裝配深度解析與實踐指南

目錄 引言&#xff1a;自動裝配如何重塑Java應用開發&#xff1f; 一、自動裝配核心機制 1.1 自動裝配三大要素 1.2 自動裝配流程 二、自定義自動配置實現 2.1 創建自動配置類 2.2 配置屬性綁定 2.3 注冊自動配置 三、條件注解深度應用 3.1 常用條件注解對比 3.2 自定…

《算法筆記》9.6小節 數據結構專題(2)并查集 問題 C: How Many Tables

題目描述 Today is Ignatius birthday. He invites a lot of friends. Now its dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, and all the friends do not want to stay with stra…

CPU、SOC、MPU、MCU--詳細分析四者的區別

一、CPU 與SOC的區別 1.CPU 對于電腦&#xff0c;我們經常提到&#xff0c;處理器&#xff0c;內存&#xff0c;顯卡&#xff0c;硬盤四大部分可以組成一個基本的電腦。其中的處理器——Central Processing Unit&#xff08;中央處理器&#xff09;。CPU是一臺計算機的運算核…

Linux常用指令學習筆記

文章目錄 前言一、文件和目錄操作指令1. 文件操作2. 目錄操作 二、文件權限管理三、網絡相關指令四、系統管理指令五、文本編輯器基本操作 六、壓縮和解壓指令七、總結 前言 在當今的IT領域&#xff0c;Linux系統因其開源、穩定、安全等特性&#xff0c;廣泛應用于服務器、個人…

android studio通過 jni 調用第三方非標準 so庫

調用第三方的so方法&#xff0c;但這個so內的方法不是標準的jni方法。這就需要我們自己寫jni然后鏈接到第三方so庫&#xff0c;通過jni調用so庫中的方法。 1.簡述&#xff1a; 要先有第三方的so庫.so文件和編譯庫對應的.h頭文件 我們自己用 c/c 創建一個標準的so 庫,比如 my…