更新時間:2020-10-23 17:26:46 來源:動力節點 瀏覽1439次
JVM是在java面試題中最常出現的題目類別之一,不僅是因為JVM屬于java零基礎的初學者首先要學習的內容,更因為虛擬機是使java語言實現與平臺無關性這一特點的關鍵。這篇文章接著以前學習過的概念、JVM運行機制的內容,繼續學習JVM的相關知識——JVM監控工具,是大家要掌握的虛擬機的內容。
1、jps:虛擬機進程狀況工具
jps主要用來輸出JVM中運行的進程狀態信息。語法格式如下:
jps [options] [hostid]
第一個參數:options
-q 不輸出類名、Jar名和傳入main方法的參數-m 輸出傳入main方法的參數-l 輸出main類或Jar的全限名-v 輸出傳入JVM的參數
第二個參數:hostid
主機或者是服務器的id,如果不指定,就默認為當前的主機或者是服務器。這是在Windows10系統下測試的,當然也可以在linux下試驗,方式是一樣的,結果可能有不同,可以選擇不同的參數選項來進行測試,打開CMD輸入相應命令。
2、jstack:堆棧跟蹤工具
jstack用于生成虛擬機當前時刻的線程快照。語法格式如下:
jstack [option] vmid
第一個參數:option
第二個參數:vmid
vmid是Java虛擬機ID,在Linux/Unix系統上一般就是進程ID。我們直接在CMD中操作一下:
3、jstat:虛擬機統計信息監控工具
jstat監視虛擬機各種運行狀態信息,可以顯示本地或者是遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據。語法格式如下:
jstat [ generalOption | outputOptions vmid [interval] [count]] ]
第一個參數:generalOption | outputOptions。這個參數表示的option,代表著用戶希望查詢的虛擬機信息,分為類加載、垃圾收集、運行期編譯狀況3類。第二個參數:vmid。vmid是Java虛擬機ID,在Linux/Unix系統上一般就是進程ID。第三個參數:interval。interval是采樣時間間隔。第四個參數:count。count表示的是采樣數。
4、jinfo:實時地查看和調整虛擬機各項參數
命令格式:jinfo [option] pid
第一個參數:option
第二個參數:pid。指定顯示的進程id。在CMD中進行測試:
5、jmap:內存映像工具
用于生成堆轉存的快照,一般是heapdump或者dump文件。如果不適用jmap命令,可以使用-XX:+HeapDumpOnOutOfMemoryError參數,當虛擬機發生內存溢出的時候可以產生快照。或者使用kill -3 pid也可以產生。jmap的作用并不僅僅是為了獲取dump文件,它可以查詢finalize執行隊列,java堆和永久代的詳細信息,如空間使用率,當前用的哪種收集器。jmap的命令格式:jmap [option] vmid。主要參數如下:
6、JConsole:JMX的可視化管理工具
這個工具相比較前面幾個工具,使用率比較高,很重要。它是一個java GUI監視工具,可以以圖表化的形式顯示各種數據。并可通過遠程連接監視遠程的服務器VM。用java寫的GUI程序,用來監控VM,并可監控遠程的VM,非常易用,而且功能非常強。在cmd里面輸入 jconsole,選則進程就可以了。(前提是在IDE工具先建立一個線程運行著)
然后我們選擇了相應的選項之后,進入這個工具就會出現下面這個界面
在上面有菜單,我們可以選擇其中一個進行查看就可以了,這個用具用起來很方便,使用頻率很高。
JVM監控工具不僅在故障排查的時候會使用到,在做壓測的時候也需要查看java進程的有關參數,有時候在JVM面試題中也會考察到這方面的內容,所以上面關于JVM監控工具的介紹,大家需要認真學習,并在java教程中學習JVM監控工具的更多操作的使用。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習