springboot Actuator 指標分析

http.server.requests

HTTP 接口性能瓶頸	http.server.requests.max + system.cpu.usage	代碼熱點分析或橫向擴容
核心接口性能指標,包含以下維度:
count:請求總數
max/sum:最大及總響應時間
status:HTTP 狀態碼分布(如 5xx 錯誤率)
應用場景:識別高延遲接口或異常請求激增。

/metrics/http.server.requests?tag=uri:xxx

指定URL分析

jvm.buffer.count

當前緩沖區數量(Direct/Mapped),監控堆外內存使用。
?作用:統計 JVM 緩沖區(如 Direct Buffer 和 Mapped Buffer)的數量。
?應用場景:監控堆外內存使用情況,排查 NIO 操作中的緩沖區泄漏問題。
Direct	網絡傳輸、大文件讀寫	減少堆內外數據拷貝,提升 I/O 性能	堆外內存泄漏(需監控 jvm.buffer.memory.used 是否持續增長)
?Mapped	數據庫文件操作、日志持久化	文件直接映射內存,避免磁盤頻繁讀寫	未關閉 FileChannel 導致虛擬內存耗盡或文件鎖沖突
?**direct 緩沖區泄漏**:若 direct 類型數量持續增加且不釋放,可能引發 OutOfMemoryError: Direct buffer memory。
?**mapped 緩沖區未關閉**:可能導致系統虛擬內存占用過高,甚至影響其他進程。
?**jvm.buffer.memory.used**:緩沖區占用的內存大小(需區分 direct 和 mapped)。
?**process.resident_memory**:進程總內存使用量,輔助判斷堆外內存泄漏。

jvm.buffer.memory.used

緩沖區內存占用
?作用:記錄當前緩沖區實際占用的內存大小(單位:字節)。
?示例:若該值持續增長,可能因未正確釋放 DirectByteBuffer 導致內存溢出。

jvm.buffer.total.capacity

?作用:顯示所有緩沖區的總容量上限。
?關聯分析:與 jvm.buffer.memory.used 對比,判斷緩沖區利用率是否合理。
緩沖區總容量,結合 jvm.buffer.memory.used 分析利用率。

jvm.classes.loaded

?作用:統計 JVM 已加載的類數量,反映應用運行時的類加載動態。
?典型問題:類加載數異常增長可能由重復加載或類加載器泄漏引起。
類加載異常	jvm.classes.loaded/unloaded	結合 JVM 分析工具(如 JProfiler)
已加載/卸載的類數量,異常值可能暗示類加載器泄漏或動態代理濫用。

jvm.classes.unloaded

?作用:記錄 JVM 生命周期內已卸載的類總數。
?意義:正常情況下卸載數較低,頻繁卸載可能影響性能(如熱部署場景)。
已加載/卸載的類數量,異常值可能暗示類加載器泄漏或動態代理濫用。

jvm.gc.live.data.size

老年代存活數據大小(反映內存碎片情況)

jvm.gc.max.data.size

?功能:垃圾回收管理的最大內存區域容量(例如老年代最大空間)。
?分析:若 jvm.memory.used 持續接近此值,可能觸發頻繁 Full GC,需優化對象生命周期或擴容堆內存。
?場景:結合 jvm.gc.pause 判斷是否因內存不足導致 GC 效率下降。

jvm.gc.memory.allocated

GC 期間分配的內存總量
Young GC 時年輕代分配的內存空間,反映對象創建速率。

jvm.gc.memory.promoted

Young GC 后晉升到老年代的內存大小,用于分析對象生命周期合理性。
顯示 Young GC 后晉升到老年代的內存大小,用于分析對象生命周期

jvm.gc.pause

內存泄漏	jvm.memory.used + jvm.gc.pause	分析堆內存增長與 Full GC 頻率
GC 耗時(jvm.gc.pause)及堆內存分配情況
GC 暫停時間(用于分析垃圾回收效率)
GC 暫停時間,衡量垃圾回收效率(如頻繁 Full GC 可能引發性能問題)。
?**Allocation Failure**:內存分配失敗(常見于年輕代空間不足時觸發Minor GC)。
?**end of minor GC**:年輕代GC(Minor GC)結束。
?**end of major GC**:老年代GC(Major/Full GC)結束。

jvm.memory.committed

已提交內存量(JVM 向操作系統申請的物理內存),反映實際資源占用。

jvm.memory.max

查看 JVM 最大內存
JVM 最大可用內存
JVM 可分配的最大內存,對比 used 可計算內存利用率。

jvm.memory.used

當前 JVM 內存使用量(堆/非堆)
內存泄漏	jvm.memory.used + jvm.gc.pause	分析堆內存增長與 Full GC 頻率
當前 JVM 內存使用量(堆/非堆),用于實時監控內存泄漏或溢出風險。
示例:若堆內存持續增長且無下降趨勢,可能存在內存泄漏。

jvm.threads.daemon

?功能:當前 JVM 守護線程數量(如垃圾回收線程)。
?分析:若守護線程數異常增加(如遠高于默認值),可能因線程池配置錯誤或框架內部泄漏。
?場景:對比 jvm.threads.live 分析線程總數是否合理。

jvm.threads.live

當前活躍線程數(排查線程泄漏)
結合 jvm.threads.live 和 tomcat.threads.busy 診斷線程阻塞問題
高并發性能瓶頸	jvm.threads.live、system.cpu.usage	檢測線程阻塞或 CPU 過載
當前活躍線程數,突增可能因線程泄漏或任務阻塞。
高并發線程阻塞	jvm.threads.live + jvm.threads.states	優化鎖機制或線程池配置

jvm.threads.peak

歷史峰值線程數

jvm.threads.states

按狀態(BLOCKED、WAITING 等)分類的線程數量
?作用:按線程狀態(如 BLOCKED、WAITING、RUNNABLE)分類統計線程數量。
?排查場景:
BLOCKED 線程過多:可能由鎖競爭或同步瓶頸導致。
WAITING 線程堆積:常見于任務隊列處理能力不足。
按狀態(BLOCKED/WAITING/RUNNABLE)統計線程數,排查鎖競爭或任務隊列積壓。
高并發線程阻塞	jvm.threads.live + jvm.threads.states	優化鎖機制或線程池配置

logback.events

記錄 Logback 日志事件數量(如 INFO/WARN/ERROR 級別日志統計)
?作用:統計 Logback 日志框架輸出的不同級別日志事件數量(如 INFO、WARN、ERROR)。
?配置:需依賴 micrometer-core 和 Logback 集成,自動記錄日志頻率。
?示例:監控 ERROR 級別日志的突發增長,觸發告警機制。
日志級別統計(INFO/WARN/ERROR),監控日志風暴或異常頻率。

process.cpu.usage

當前進程 CPU 占用
當前進程 CPU 占用,結合線程指標分析熱點代碼。

process.files.max

?功能:操作系統允許進程打開的最大文件句柄數。
?分析:若 process.files.open 接近此值,可能導致 "Too many open files" 錯誤,需調整系統限制(ulimit)或檢查文件泄漏。

process.files.open

?功能:當前進程已打開的文件句柄數(包括 Socket、日志文件等)。
?分析:持續增長可能因未正確關閉資源(如數據庫連接、流未釋放)。
process.files.open	process.files.max	process.files.open / process.files.max > 0.8

process.start.time

進程啟動時間戳
?作用:記錄應用進程啟動的時間戳(Unix 時間戳格式)。
?用途:用于計算應用運行時長,或與其他時間序列數據關聯分析。
啟動時間戳,用于計算運行周期。

process.uptime

應用運行時長(秒)
?作用:顯示應用已運行的時長(單位:秒)。
?示例:結合告警系統,監控長時間運行的進程是否存在內存泄漏。
應用持續運行時間,長期運行需關注內存泄漏。

system.cpu.count

CPU 核心數,用于資源擴容決策。
CPU 核心數(用于資源規劃)

system.cpu.usage

系統整體 CPU 使用率
高并發性能瓶頸	jvm.threads.live、system.cpu.usage	檢測線程阻塞或 CPU 過載
系統整體 CPU 使用率,超 80% 需警惕資源瓶頸。
HTTP 接口性能瓶頸	http.server.requests.max + system.cpu.usage	代碼熱點分析或橫向擴容

system.load.average.1m

?功能:系統過去 1 分鐘的平均負載(單位:核心數占比)。
?分析:
負載值 > CPU 核心數表示系統過載。
若負載高但 system.cpu.usage 低,可能因 I/O 阻塞或鎖競爭。
?場景:結合 jvm.threads.states 判斷是否因線程阻塞導致負載堆積。
system.load.average.1m	system.cpu.usage	system.load.average.1m > (system.cpu.count * 2)

tomcat.sessions.active.current

活躍會話數
當前活躍會話數
當前活躍會話數,評估用戶并發量。

tomcat.sessions.active.max

功能:歷史活躍會話數的峰值。
?分析:對比當前活躍會話數(tomcat.sessions.active.current),評估系統承載能力是否需擴容。

tomcat.sessions.alive.max

?作用:統計會話存活時間的最大值,反映用戶會話的活躍程度。
?優化建議:若該值過高,需檢查會話超時配置是否合理。

tomcat.sessions.created

?功能:自應用啟動以來創建的會話總數。
?分析:
高頻會話創建(如每秒數百次)可能因無 Session 復用(如未設置 Cookie)或遭受攻擊。
結合 tomcat.sessions.expired 優化會話超時時間。

tomcat.sessions.expired

過期會話數(用于會話超時配置優化)
過期會話數,優化會話超時配置。

tomcat.sessions.rejected

因超出最大限制被拒絕的會話數
Tomcat 會話管理	tomcat.sessions.rejected	調整 server.tomcat.max-sessions 配置
?作用:記錄因超出 Tomcat 最大會話數限制而被拒絕創建的會話數量。
?調優方向:調整 server.tomcat.max-sessions 參數或優化會話管理策略。
Tomcat 會話過載	tomcat.sessions.rejected	調整 max-sessions 參數
因超出最大會話數被拒絕的請求數,需調整 server.tomcat.max-sessions。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898651.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898651.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898651.shtml

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

相關文章

在K8S中掛載 Secret 到 Pod

在 Kubernetes 里,把 Secret 掛載到 Pod 中有兩種主要方式:作為卷掛載和作為環境變量掛載。下面為你提供相應的代碼示例。 作為卷掛載 Secret 將 Secret 作為卷掛載到 Pod 時,Secret 的每個鍵會成為掛載目錄下的一個文件,文件內…

mac npm run dev報錯 error:0308010C:digital envelope routines::unsupported

并且提示 Unsupported engine { npm WARN EBADENGINE package: achrinza/node-ipc9.2.2, npm WARN EBADENGINE required: { node: 8 || 10 || 12 || 14 || 16 || 17 }, npm WARN EBADENGINE current: { node: v18.18.0, npm: 9.8.1 } npm WARN EBADENGINE } package.jso…

「宇樹科技」13家核心零部件供應商梳理!

2025年2月6日,摩根士丹利(Morgan Stanley)發布最新人形機器人研報:Humanoid 100: Mapping the Humanoid Robot Value Chain(人形機器人100:全球人形機器人產業鏈梳理)。 2025年2月20日&#xf…

MySQL 性能優化方向

MySQL 性能優化是一個系統性的工作,涉及數據庫設計、查詢優化、索引優化、硬件配置等多個方面。以下是 MySQL 性能優化的主要方向和具體優化方案: 一、數據庫設計優化 1. 合理設計表結構 規范化設計:避免數據冗余,確保數據一致性。適度反規范化:在查詢頻繁的場景下,適當…

MyBatis plus詳解

核心功能 代碼生成器 它能夠依據數據庫表結構,自動生成涵蓋實體類、Mapper 接口、Mapper XML 文件、Service 接口與實現類等在內的基礎代碼。開發人員只需簡單配置數據庫連接信息、表名以及生成代碼的相關參數,即可快速生成符合項目規范的基礎代碼&…

背包問題——多重背包(C語言)

代碼如下&#xff1a; #include<stdio.h>int knapsack(int weight[], int value[], int count[], int n, int capacity) {int* dp (int*)malloc(sizeof(int) * (capacity 1));for (int i 0; i < capacity; i){dp[i] 0;}for (int i 0; i < n; i)//核心代碼{fo…

計算機技術系列博客——目錄頁(持續更新)

1.1 博客目錄專欄 1.1.1 博客文章導航 計算機技術系列博客——目錄頁 1.1.2 網頁資源整理 2.1 計算機科學理論 2.2 軟件工程技術 2.2.1.1 編程語言 Java Java語言基礎 (1) Java基礎知識總結01——Java基礎篇 (2) Java基礎知識總結02——集合框架篇 (3) Java基礎知識總結03—…

<項目> 主從Reactor模型的高并發服務器

目錄 Reactor 概念 分類 單Reactor單線程 單Reactor多線程 多Reactor多線程 項目介紹 項目規劃 模塊關系 實現 TimerWheel -- 時間輪定時器 定時器系統調用 時間輪設計 通用類型Any Buffer Socket Channel Poller EventLoop&#xff08;核心&#xff09; eventfd 設計思路 …

車載以太網網絡測試-20【傳輸層-DOIP協議-3】

1 摘要 本文繼續對ISO 13400-2定義的節點管理報文進行介紹&#xff0c;主要對路由激活請求/響應報文以及在線檢查請求/響應報文的作用、幀結構以及示例進行介紹。 上文回顧&#xff1a; 車載以太網網絡測試-19【傳輸層-DOIP協議-2】 在進行詳細介紹之前&#xff0c;還是先回顧…

Jvm運行時數據區有哪些

Jvm運行時數據區有哪些 程序計數器&#xff08;Program Counter Register&#xff09; 作用&#xff1a; 可以看作是當前線程所執行的字節碼的行號指示器。在多線程環境下&#xff0c;每個線程都有自己獨立的程序計數器&#xff0c;線程私有的&#xff0c;用于記錄該線程正在執…

Compose 實踐與探索十五 —— 自定義觸摸

1、自定義觸摸與一維滑動監測 之前我們在講 Modifier 時講過如下與手勢檢測相關的 Modifier&#xff1a; Modifier.clickable { } Modifier.combinedClickable { } Modifier.pointerInput {detectTapGestures { } }這里對以上內容就不再贅述了&#xff0c;直接去講解更復雜的…

Python 中有哪些庫可以幫助讀取和操作 shapefile 文件?

Python操作Shapefile文件庫推薦 1. PyShp (pyshp) 特點&#xff1a;純Python實現&#xff0c;無外部依賴&#xff0c;輕量級&#xff0c;支持完整的Shapefile格式&#xff08;shp、dbf、shx&#xff09;讀寫。適用場景&#xff1a;基礎讀寫、簡單幾何操作、文件格式轉換。安裝…

JSONPath 的介紹

JSONPath的起源 1. 起源背景 在討論JSONPath的起源之前&#xff0c;讓我們先了解JSONPath是什么。JSONPath 是一種查詢語言&#xff0c;用于從JSON&#xff08;JavaScript Object Notation&#xff09;數據結構中提取數據。它允許開發者通過類似于XPath的表達式來定位JSON對象…

【CSS文字漸變動畫】

CSS文字漸變動畫 HTML代碼CSS代碼效果圖 HTML代碼 <div class"title"><h1>今天是春分</h1><p>正是春天到來的日子&#xff0c;花都開了&#xff0c;小鳥也飛回來了&#xff0c;大山也綠了起來&#xff0c;空氣也有點嫩嫩的氣息了</p>…

Bitcoin Thunderbolt 內測通道開啟,加速比特幣交易新時代

比特幣作為全球領先的加密貨幣&#xff0c;一直占據著去中心化金融的核心地位。然而&#xff0c;隨著比特幣生態的不斷擴展&#xff0c;其交易速度和擴容問題逐漸成為制約發展的關鍵瓶頸。為解決這一難題&#xff0c; 比特幣雷電網絡&#xff08;Bitcoin Thunderbolt&#xff0…

Postgresql無法連接問題匯總

一. 數據庫服務未啟動 ?報錯信息&#xff1a; [postgresk8s-node2 ~]$ psql psql: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"…

軟件工程之軟件驗證計劃Software Verification Plan

個人主頁&#xff1a;云納星辰懷自在 座右銘&#xff1a;“所謂堅持&#xff0c;就是覺得還有希望&#xff01;” 本文為基于ISO26262軟件驗證計劃模板&#xff0c;僅供參考。 軟件驗證計劃&#xff0c;包括&#xff1a; 1. 軟件需求驗證計劃 2. 軟件架構設計驗證計劃 3. 軟件單…

SpringBoot之如何集成SpringDoc最詳細文檔

文章目錄 一、概念解釋1、OpenAPI2、Swagger3、Springfox4、Springdoc5. 關系與區別 二、SpringDoc基本使用1、導包2、正常編寫代碼&#xff0c;不需要任何注解3、運行后訪問下面的鏈接即可 三、SpringDoc進階使用1、配置文檔信息2、配置文檔分組3、springdoc的配置參數**1. 基…

SpringBoot3+Vue3開發學生成績管理系統

系統介紹 此系統功能包含&#xff1a;首頁、課程管理、成績查詢、成績詳情、班級管理、專業管理、用戶管理等功能。用戶管理又細分為賬號管理、學生管理、教師管理、管理員管理。 基礎功能包含&#xff1a;登錄、退出、修改登錄人信息、修改登錄人密碼。 分為4種角色&#x…

康謀方案 | AVM合成數據仿真驗證方案

隨著自動駕駛技術的快速發展&#xff0c;仿真軟件在開發過程中扮演著越來越重要的角色。仿真傳感器與環境不僅能夠加速算法驗證&#xff0c;還能在安全可控的條件下進行復雜場景的重復測試。 本文將分享如何利用自動駕駛仿真軟件配置仿真傳感器與搭建仿真環境&#xff0c;并對…