jstat命令介紹

jstat:查看JVM統計信息

  • 一 基本情況
  • 二 基本語法
    • 2.1 option參數
      • 1. 類裝載相關的:
      • 2. 垃圾回收相關的
        • `-gc`:顯示與GC相關的堆信息。包括Eden區、兩個Survivor區、老年代、永久代等的容量、已用空間、GC時間合計等信息。
        • `-gccapacity`:顯示內容與-gc基本相同,但輸出主要關注Java堆各個區域使用到的最大、最小空間。
        • `-gcutil`:顯示內容與-gc基本相同,但輸出主要關注已使用空間占總空間的百分比。
        • `-gccause`:與-gcutil功能一樣,但是會額外輸出導致最后一次或當前正在發生的GC產生的原因。
        • `-gcnew`:顯示新生代GC狀況
        • `-gcnewcapacity`:顯示內容與-gcnew基本相同,輸出主要關注使用到的最大、最小空間
        • `-geold`:顯示老年代GC狀況
        • `-gcoldcapacity`:顯示內容與-gcold基本相同,輸出主要關注使用到的最大、最小空間
        • `-gcpermcapacity`:顯示永久代使用到的最大、最小空間。
      • 3. **JIT相關的:**
        • `-compiler`:顯示JIT編譯器編譯過的方法、耗時等信息
        • `-printcompilation`:輸出已經被JIT編譯的方法 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/82a18850bf744075b573b82cea4e99d3.png)
    • 2.2 interval參數
    • 2.2 count參數
    • 2.3 -t參數
    • 2.4 -h參數
  • 三 補充

一 基本情況

jstat(JVM Statistics Monitoring Tool):用于監視虛擬機各種運行狀態信息的命令行工具。它可以顯示本地或者遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據。 在沒有GUI圖形界面,只提供了純文本控制臺環境的服務器上,它將是運行期定位虛擬機性能問題的首選工具。常用于檢測垃圾回收問題以及內存泄漏問題。 官方文檔

二 基本語法

它的基本使用語法為:

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] 

查看命令相關參數:

jstat -h 或 jstat -help

2.1 option參數

選項option可以由以下值構成。

1. 類裝載相關的:

  • -class:顯示ClassLoader的相關信息:類的裝載、卸載數量、總空間、類裝載所消耗的時間等
    在這里插入圖片描述

2. 垃圾回收相關的

-gc:顯示與GC相關的堆信息。包括Eden區、兩個Survivor區、老年代、永久代等的容量、已用空間、GC時間合計等信息。

在這里插入圖片描述在這里插入圖片描述

新生代相關

  • S0C是第一個幸存者區的大小(字節)
  • S1C是第二個幸存者區的大小(字節)
  • S0U是第一個幸存者區已使用的大小(字節)
  • S1U是第二個幸存者區已使用的大小(字節)
  • EC是Eden空間的大小(字節)
  • EU是Eden空間已使用大小(字節)

老年代相關

  • OC是老年代的大小(字節)
  • OU是老年代已使用的大小(字節)

方法區(元空間)相關

  • MC是方法區的大小
  • MU是方法區已使用的大小
  • CCSC是壓縮類空間的大小
  • CCSU是壓縮類空間已使用的大小

其它

  • YGC是指從應用程序啟動到采樣時young gc次數
  • YGCT是指從應用程序啟動到采樣時young gc消耗的時間(秒)
  • FGC是指從應用程序啟動到采樣時full gc次數
  • FGCT是指從應用程序啟動到采樣時full gc消耗的時間(秒)
  • GCT是指從應用程序啟動到采樣時gc的總時間
-gccapacity:顯示內容與-gc基本相同,但輸出主要關注Java堆各個區域使用到的最大、最小空間。
-gcutil:顯示內容與-gc基本相同,但輸出主要關注已使用空間占總空間的百分比。

在這里插入圖片描述

-gccause:與-gcutil功能一樣,但是會額外輸出導致最后一次或當前正在發生的GC產生的原因。

在這里插入圖片描述

-gcnew:顯示新生代GC狀況

在這里插入圖片描述

-gcnewcapacity:顯示內容與-gcnew基本相同,輸出主要關注使用到的最大、最小空間

在這里插入圖片描述

-geold:顯示老年代GC狀況

在這里插入圖片描述

-gcoldcapacity:顯示內容與-gcold基本相同,輸出主要關注使用到的最大、最小空間

在這里插入圖片描述

-gcpermcapacity:顯示永久代使用到的最大、最小空間。

3. JIT相關的:

-compiler:顯示JIT編譯器編譯過的方法、耗時等信息

在這里插入圖片描述

-printcompilation:輸出已經被JIT編譯的方法 在這里插入圖片描述

2.2 interval參數

用于指定輸出統計數據的周期,單位為毫秒。即:查詢間隔
每隔一秒打印一次數據

在這里插入圖片描述

2.2 count參數

用于指定查詢的總次數
每隔一秒打印一次數據,共打印5次
在這里插入圖片描述

2.3 -t參數

可以在輸出信息前加上一個Timestamp列,顯示程序的運行時間。單位:秒
程序的運行時間在這里插入圖片描述
經驗
我們可以比較 Java 進程的啟動時間以及總 GC 時間(GCT 列),或者兩次測量的間隔時間以及總 GC 時間的增量,來得出 GC 時間占運行時間的比例。如果該比例超過 20%,則說明目前堆的壓力較大;如果該比例超過 90%,則說明堆里幾乎沒有可用空間,隨時都可能拋出 OOM 異常。
在這里插入圖片描述

2.4 -h參數

可以在周期性數據輸岀時,輸出多少行數據后輸出一個表頭信息

h表示head表頭,4表示每隔4條數據打印一個表頭

在這里插入圖片描述

三 補充

jstat還可以用來判斷是否出現內存泄漏

第1步:在長時間運行的 Java 程序中,我們可以運行jstat命令連續獲取多行性能數據,并取這幾行數據中 OU 列(即已占用的老年代內存)的最小值。

第2步:然后,我們每隔一段較長的時間重復一次上述操作,來獲得多組 OU 最小值。如果這些值呈上漲趨勢,則說明該 Java 程序的老年代內存已使用量在不斷上漲,這意味著無法回收的對象在不斷增加,因此很有可能存在內存泄漏。

JVM之GC 調優基礎知識(一)

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

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

相關文章

【C++】C++-機房收費管理系統(源碼+注釋)【獨一無二】

&#x1f449;博__主&#x1f448;&#xff1a;米碼收割機 &#x1f449;技__能&#x1f448;&#xff1a;C/Python語言 &#x1f449;公眾號&#x1f448;&#xff1a;測試開發自動化【獲取源碼商業合作】 &#x1f449;榮__譽&#x1f448;&#xff1a;阿里云博客專家博主、5…

LeetCode之最長回文子串

1.題目鏈接 5. 最長回文子串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/longest-palindromic-substring/description/ 2.題目解析 對于這道題目我們可以使用動態規劃的思路來求解&#xff0c;具體思路是&#xff0c;對于一個長度大于2的子串&…

生成式信息檢索(問答系統與信息檢索的進步)

文章目錄 什么是問答系統&#xff08;Question Answering Systems&#xff09;檢索系統的演變經典檢索系統“Term” 文檔搜素的最小單位倒排索引詞嵌入的出現預訓練語言模型 用于問答的語言模型設計方案選擇&#xff1a;封閉式與開放式問答系統對比方案A&#xff1a;封閉式生成…

【干貨】一文帶你看懂什么是渠道分銷?如何管理渠道分銷

在當今競爭激烈的市場環境中&#xff0c;企業想要擴大市場份額、提高產品或服務的可見度&#xff0c;有效的渠道分銷策略是關鍵。 什么是渠道分銷&#xff1f; 渠道分銷&#xff0c;簡而言之&#xff0c;是指企業利用中間商&#xff08;如經銷商、代理商、零售商等&#xff0…

springboot解壓文件流zip壓縮包

springboot解壓文件流zip壓縮包 原始文件存儲的地方&#xff1a; 需要在當前目錄下解壓該文件&#xff0c;如下圖&#xff1a; 代碼示例&#xff1a; private Result<String> getLocationGuideLayerName(YbYstbtqTaskResolveParam params, String fishnetLayerName)…

華為od100問持續分享-1

我是一名軟件開發培訓機構老師&#xff0c;我的學生已經有上百人通過了華為OD機試&#xff0c;學生們每次考完試&#xff0c;會把題目拿出來一起交流分享。 重要&#xff1a;2024年5月份開始&#xff0c;考的都是OD統一考試&#xff08;D卷&#xff09;&#xff0c;題庫已經整…

入門PHP就來我這(高級)24 ~ Session判斷用戶登錄

有膽量你就來跟著路老師卷起來&#xff01; -- 純干貨&#xff0c;技術知識分享 路老師給大家分享PHP語言的知識了&#xff0c;旨在想讓大家入門PHP&#xff0c;并深入了解PHP語言。 上一篇我們介紹了Session管理部分的概念&#xff0c;本文通過session來改寫一些用戶登錄&…

一致性Hash問題及解決方案

Hash算法的應用場景 請求的負載均衡 Nginx的ip_hash策略可以在客戶端ip不發生變化的情況下&#xff0c;將其發出的請求始終路由到同一個目標服務器上&#xff0c;實現會話粘滯&#xff0c;避免處理session共享問題。 如果沒有ip_hash策略&#xff0c;可以通過維護一張映射表的…

常用包管理工具(apk、apt、yum)常用命令

apk 包管理工具apk是Alpine Linux中使用廣泛的一個工具&#xff0c;用于管理軟件包的安裝、更新、卸載等操作。以下是一些常用的apk命令及其解釋&#xff1a; 1.更新 apk update&#xff1a;從遠程鏡像源更新本地倉庫中的所有軟件包索引apk upgrade&#xff1a;升級本地已安裝…

ts實現將相同類型的數據通過排序放在一起

看下效果&#xff0c;可以將相同表名稱的字段放在一起 排序適用于中英文、數字 // 排序 function sortByType(items: any) {// 先按照類型進行排序items.sort((a: any, b: any) > {if (a.label < b.label) return -1;if (a.label > b.label) return 1;return 0;});r…

鴻蒙語言基礎類庫:【@ohos.application.testRunner (TestRunner)】 測試

TestRunner TestRunner模塊提供了框架測試的能力。包括準備單元測試環境、運行測試用例。 如果您想實現自己的單元測試框架&#xff0c;您必須繼承這個類并覆蓋它的所有方法。 說明&#xff1a; 開發前請熟悉鴻蒙開發指導文檔&#xff1a;gitee.com/li-shizhen-skin/harmony-…

編程語言與數據結構的關系:深度解析與探索

編程語言與數據結構的關系&#xff1a;深度解析與探索 在編程的世界中&#xff0c;編程語言和數據結構是兩個不可或缺的元素。它們之間既相互依存&#xff0c;又各自獨立&#xff0c;共同構成了編程的核心。本文將深入探索編程語言與數據結構之間的復雜關系&#xff0c;從四個…

[氮化鎵]Kevin J. Chen組新作—肖特基p-GaN HEMTs正柵ESD機理研究

這篇文章是發表在《IEEE Electron Device Letters》上的一篇關于Schottky型p-GaN柵極高電子遷移率晶體管&#xff08;HEMTs&#xff09;的正向柵極靜電放電&#xff08;ESD&#xff09;機理研究的論文。文章由Jiahui Sun等人撰寫&#xff0c;使用了基于碳化硅&#xff08;SiC&a…

8626 原子量計數

分析&#xff1a; 1. **讀取輸入**&#xff1a;首先&#xff0c;我們需要讀取輸入中的第一行&#xff0c;了解有多少個化學式需要處理。之后&#xff0c;對于每個化學式&#xff0c;我們逐行讀取并進行處理。 2. **解析化學式**&#xff1a;對于每個化學式&#xff0c;我們需要…

8627 數獨

為了判斷數獨解是否合法&#xff0c;我們需要遵循以下步驟&#xff1a; 1. **檢查每一行**&#xff1a;確保1到9每個數字在每一行中只出現一次。 2. **檢查每一列**&#xff1a;確保1到9每個數字在每一列中只出現一次。 3. **檢查每個3x3的宮**&#xff1a;確保1到9每個數字在…

細胞通訊之cellchat的流程

愿武藝晴小朋友一定得每天都開心 在細胞通訊的領域內有cellphoneDB、cellchat、iTALK等多種cell-cell communication的工具; 其中cellchat,我覺得它比較的親民和好看吧^_^ cellchat <- createCellChat(Matrix(health@assays$RNA$data,sparse = T), #用于seurat.v5對象 …

文件類:如何將excel文件轉為csv文件(且保留時間格式)?

最近有個場景&#xff0c;在ftp服務器上&#xff0c;讀取csv文件并入庫&#xff0c;但是客戶提供的一部分文件卻是xls文件&#xff0c;就得搞個將excel轉為csv文件的方法&#xff0c;話不多說直接開干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…

掌握axios與Vue 3:構建高效HTTP請求的終極指南

引言 axios作為一個廣泛使用的JavaScript庫&#xff0c;因其簡潔的API、強大的功能和良好的瀏覽器兼容性&#xff0c;成為了許多前端開發者在Vue 3項目中的首選。 axios簡介 axios是什么&#xff1f; axios是一個基于Promise的HTTP客戶端&#xff0c;用于瀏覽器和node.js環境…

【視頻】R語言廣義加性模型GAMs非線性效應、比較分析草種耐寒性實驗數據可視化

全文鏈接&#xff1a;https://tecdat.cn/?p36979 原文出處&#xff1a;拓端數據部落公眾號 廣義加法模型&#xff08;Generalized Additive Models, GAMs&#xff09;作為一種高度靈活的統計工具&#xff0c;顯著擴展了廣義線性模型&#xff08;Generalized Linear Models, …

我被手機所傷,竟如此憔悴。

臨睡前&#xff0c;剛刷完小視頻&#xff0c;感覺好無聊。一陣陣空虛感襲來。看看時間&#xff0c;哦&#xff0c;原來我下班后一直從6點刷視頻到11點。 哎&#xff0c;太空虛了&#xff0c;又馬上要睡覺了&#xff0c;為什么會這么難受呢?明明我大學&#xff0c;高中&#x…