JVM監控工具:jps、jstat、jinfo、jmap、jhat、j
一、jps(JVM Process Status Tools)
jps是參照Unix系統的取名規則命名的,而他的功能和ps的功能類似,可以列舉正在執行的餓虛擬機器程式並顯示虛擬機器執行的主類以及這些程式的唯一ID(LVMID,對應本機來說和PID相同),他的用法如下:
jps [option] [hostid]
其中hostid預設為本機,而option選項包含以下選項
Option | Function |
-q | 只輸出LVMID |
-m | 輸出JVM啟動時傳給主類的方法 |
-l | 輸出主類的全名,如果是Jar則輸出jar的路徑 |
-v | 輸出JVM的啟動引數 |
二、jstat(JVM Statistics Monitoring Tools)
jstat主要用於監控虛擬機器的各種執行狀態資訊,如類的裝載、記憶體、垃圾回收、JIT編譯器等,在沒有GUI的伺服器上,這款工具是首選的一款監控工具。其用法如下:
jstat [option vmid [interval [s|ms] [vount] ] ]
引數interval和count分別表示查詢間隔和查詢次數,如每1毫秒查詢一次程式20445的垃圾回收情況,監控20次,命令如下所示:
jstat –gc 20445 1 20
相關的輸出引數介紹可參照官方的說明(注:網址連結請)
選項option代表使用者需要查詢的虛擬機器的資訊,主要分為3類:類裝載、垃圾回收和執行期的編譯情況,具體如下表所示:
Option | Function |
-class | 監視類的裝載、解除安裝數量以及類的裝載總空間和耗費時間等 |
-gc | 監視Java堆,包含eden、2個survivor區、old區和永久帶區域的容量、已用空間、GC時間合計等資訊 |
-gccapcity | 監視內容與-gc相同,但輸出主要關注Java區域用到的最大和最小空間 |
-gcutil | 監視內容與-gc相同,但輸出主要關注已使用空間佔總空間的百分比 |
-gccause | 與-gcutil輸出資訊相同,額外輸出導致上次GC產生的原因 |
-gcnew | 監控新生代的GC情況 |
-gcnewcapacity | 與-gcnew監控資訊相同,輸出主要關注使用到的最大和最小空間 |
-gcold | 監控老生代的GC情況 |
-gcoldcapacity | 與-gcold監控資訊相同,輸出主要關注使用到的最大和最小空間 |
-gcpermcapacity | 輸出永久帶用到的最大和最小空間 |
-compiler | 輸出JIT編譯器編譯過的方法、耗時資訊 |
-printcompilation | 輸出已經被JIT編譯的方法 |
三、jinfo(JVM configuration Info for Java)
Jinfo的作用是實時檢視虛擬機器的各項引數資訊jps –v可以檢視虛擬機器在啟動時被顯式指定的引數資訊,但是如果你想知道預設的一些引數資訊呢?除了去查詢對應的資料以外,jinfo就顯得很重要了。jinfo的用法如下:
Jinfo [option] pid
如 jinfo –sysprops {pid}
四、jmap(JVM Memory Map for Java)
jmap用於生成堆快照(heapdump)。當然我們有很多方法可以取到對應的dump資訊,如我們透過JVM啟動時加入啟動引數 –XX:HeapDumpOnOutOfMemoryError引數,可以讓JVM在出現記憶體溢位錯誤的時候自動生成dump檔案,亦可以透過-XX:HeapDumpOnCtrlBreak引數,在執行時使用ctrl+break按鍵生成dump檔案,當然我們也可以使用kill -3 pid的方式去恐嚇JVM生成dump檔案。jmap的作用不僅僅是為了獲取dump檔案,還可以用於查詢finalize執行佇列、Java堆和永久帶的詳細資訊,如空間使用率、垃圾回收器等。其執行格式如下:
jmap [option] vmip
Option的資訊如下表所示
Option | Function |
-dump | 生成對應的dump資訊,用法為-dump:[live,]format=b,file={fileName} |
-finalizerinfo | 顯示在F-Queue中等待的Finalizer方法的物件(只在linux下生效) |
-heap | 顯示堆的詳細資訊、垃圾回收器資訊、引數配置、分代詳情等 |
-histo | 顯示堆疊中的物件的統計資訊,包含類、例項數量和合計容量 |
-permstat | 以ClassLoder為統計口徑顯示永久帶的記憶體狀態 |
-F | 當虛擬機器對-dump無響應時可使用這個選項強制生成dump快照 |
示例:jmap -dump:format=b,file=heap.dump 20445
五、jhat(JVM Heap Analysis Tool)
jhat是用來分析dump檔案的一個微型的HTTP/HTML伺服器,它能將生成的dump檔案生成線上的HTML檔案,讓我們可以透過瀏覽器進行查閱,然而實際中我們很少使用這個工具,因為一般伺服器上設定的堆、棧記憶體都比較大,生成的dump也比較大,直接用jhat容易造成記憶體溢位,而是我們大部分會將對應的檔案複製下來,透過其他視覺化的工具進行分析。啟用法如下:
jhat {dump_file}
執行命令後,我們看到系統開始讀取這段dump資訊,當系統提示Server is ready的時候,使用者可以透過在瀏覽器鍵入進行查詢。
六、jstack(JVM Stack Trace for java)
jstack用於JVM當前時刻的執行緒快照,又稱threaddump檔案,它是JVM當前每一條執行緒正在執行的堆疊資訊的集合。生成執行緒快照的主要目的是為了定位執行緒出現長時間停頓的原因,如執行緒死鎖、死迴圈、請求外部時長過長導致執行緒停頓的原因。透過jstack我們就可以知道哪些程式在後臺做些什麼?在等待什麼資源等!其執行格式如下:
jstack [option] vmid
相關的option和function如下表所示
Option | Function |
-F | 當正常輸出的請求不響應時強制輸出執行緒堆疊 |
-l | 除堆疊資訊外,顯示關於鎖的附加資訊 |
-m | 顯示native方法的堆疊資訊 |
示例:jstack -l 20445
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2805630/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java——命令jps、jstat、jmap、jstack、jhat、jinfoJavaJS
- jvm系列(四):jvm調優-命令大全(jps jstat jmap jhat jstack jinfo)JVMJS
- Java命令列監控工具(jmap,jstack,jstat,jinfo,jps)Java命令列JS
- java虛擬機器記憶體監控工具jps,jinfo,Jstack,jstat,jmap,jhat使用Java虛擬機記憶體JS
- JVM效能調優監控工具——jps、jstack、jmap、jhat、jstat、hprof使用詳解JVMJS
- Java命令列監控工具(jmap,jstack,jstat,jinfoJava命令列JS
- 使用JDK工具jmap和jhat監控Java程式JDKJava
- JDK幾個很實用的工具 jps、jinfo、jstat、jstack、jmap、jconsoleJDKJS
- [轉載]JDK自帶VM分析工具jps,jstat,jmap,jconsoleJDKJS
- jstack, jstat, jmap, jinfo, 教你如何在背後偷窺你的程式^^JS
- (轉)JVM調優常用命令(jstat、jmap、jstack)JVMJS
- JVM 效能監控工具JVM
- 使用JDK自帶的jmap和jhat監控處於執行狀態的Java程式JDKJava
- JVM系列(七) – JVM線上監控工具JVM
- JVM系列(七) - JVM線上監控工具JVM
- Java JDK目錄下的jmap和jhat工具的使用方式JavaJDK
- 深入理解JVM(七)——效能監控工具JVM
- JVM學習筆記---伺服器,JVM效能監控工具JVM筆記伺服器
- prometheus JVM監控PrometheusJVM
- 深入理解JVM:效能分析與監控工具JVM
- Arthas JVM 監控器JVM
- ☕[JVM效能專題](1)效能監控-命令列工具JVM命令列
- [JVM工具(1)] 堆疊檢查利器jstat的使用JVMJS
- UAVStack功能上新:新增JVM監控分析工具JVM
- 【JVM進階之路】八:效能監控工具-命令列篇JVM命令列
- 系統監控&JVM監控指標資料查詢JVM指標
- JvmTop監控JVM的TOP命令JVM
- JVM調優——JVM監控工具jvisualvm的使用及GC外掛安裝JVMLVMGC
- JVM(4)-虛擬機器效能監控與故障處理工具JVM虛擬機
- MySQL監控工具MySql
- Redis監控工具Redis
- Ganglia監控工具
- jps、jmap、jstack已經Out了,使用jcmd進行JVM效能和記憶體跟蹤微調 -DZone JavaJSJVM記憶體Java
- 09 . Prometheus監控tomcat+jvmPrometheusTomcatJVM
- 遠端監控Springboot JVMSpring BootJVM
- 深入理解JVM(③)虛擬機器效能監控、故障處理工具JVM虛擬機
- Mycat Web監控工具Web
- MySQL監控工具-orztopMySql