版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。歡迎通路我的部落格 https://blog.csdn.net/smooth00/article/details/70229653
主要是對Java虛拟機(JVM)的遠端監視,如jdk自帶的工具jvisualvm就可監視記憶體(JVM)、垃圾收集(GC)和線程統計,針對不同的JVM廠商,如Sun JVM、IBM JVM和Oracle JRockit JVM,監控的名額有所差別,但大體都一樣。以下羅列了常見的JVM監控名額:
監控參數 | 描述 |
程序記憶體 | |
Eden空間 (堆記憶體) | 最初為大多數對象配置設定記憶體的池 |
幸存空間 (堆記憶體) | 在eden空間的垃圾收集之後池中幸存的對象 |
Tenured Generation (堆記憶體) | 在幸存空間中存在了一段時間的池中包含的對象 |
Java堆 | JVM存儲對象的空間 |
Permanent Generation (非堆記憶體) | 儲存虛拟機本身的所有反射資料,如類和方法對象。利用使用類資料共享的虛拟機,此記憶體可分為隻讀和讀寫區域。 |
代碼緩存 (非堆記憶體) | 用于編譯和存儲本機代碼的記憶體。 |
JIT代碼緩存 | 存儲轉換的彙編語言并可使其高速執行的記憶體 |
Nursery | 配置設定給新的對象的空間 |
線程參數 | |
全部開始線程 | java虛拟機運作開始後的全部線程的數量 |
最大線程 | java虛拟機運作開始後最大的活動線程數量或該值被重置 |
活動線程 | 目前運作的活動線程數 |
守護線程 | 目前運作的背景程式線程數 |
可運作線程 | 在Java虛拟機中執行的線程 |
被阻塞線程 | 被阻止并等待螢幕鎖的線程 |
等待中的線程 | 無限期等待另一線程執行特定動作的線程 |
限時等待的線程 | 該線程等待其他線程執行動作,并且等待了表示的時間 |
死鎖線程 | 線程處于死鎖狀态的數量 |
類加載 | |
載入的類 | 加載的類數 |
解除安裝的類 | 解除安裝的類數 |
JVM統計 | |
CPU負荷 | 表示由JVM占用的機器的負荷 |
0表示無負荷,100表示滿負荷 | |
CPU使用 | 表示伺服器上JVM使用CPU的資訊 |
主機記憶體參數 | |
全部實體記憶體 | 實體記憶體MB |
空閑實體記憶體 | 空閑實體記憶體MB |
全部交換區域 | 交換區域空間大小MB |
虛拟記憶體 | 用來運作程序的虛拟記憶體的大小MB |
垃圾清理(GC) | |
花費時間/Min | 收集資訊花費的大約時間(毫秒) |
收集時間/Min | 收集運作的大約時間ms |
線程數 | 用于垃圾清理的線程數 |
上次開始時間 | 本次垃圾清理的開始時間 |
上次結束時間 | 本次垃圾清理的結束時間 |
清理前記憶體 | 本次垃圾清理前的記憶體使用情況 |
清理後記憶體 | 本次垃圾清理後的記憶體使用情況 |
垃圾收集 | 執行垃圾收集使用的時間 |
編譯時間 | 編譯(JIT)使用的時間 |
以下列出了一些需要監控的服務對象如何開啟JVM監控配置(隻要按以下方式配置并重新開機服務後,就可以通過jvisualvm等工具進行遠端監視)
說明:監控要求防火牆關閉或是放開指定端口,對于-Djava.rmi.server.hostname=172.16.1.152不是必須設定(除非有多于一個的網卡和IP)