JVM监控工具有哪些
文章目錄
- 1. jps_查看JVM進程ID(Java Virtual Machine Process Status Tool)
- 2. jinfo_查看和調整JVM參數
- 3. jstat_統計內存和GC信息(Java Virtual Machine statistics monitoring tool)
- 4. jmap_查看和轉儲堆快照(Java Memory Map)
- 5. jstack_生成線程快照
- 2. 圖形化監控工具
- 2.1 jconsole_圖形化的分析工具
- 2.2 jvisualvm_強大的圖形化分析工具,推薦
- 第三方監控工具
1. jps_查看JVM進程ID(Java Virtual Machine Process Status Tool)
? ? ? ?jps可以查看當前系統正在運行的java虛擬機進程、主類。其他命令基本都要依賴此命令來確定要監控哪一個虛擬機進程。在一個項目中有多個JVM運行時,比windows自帶的任務管理器里查看方便點,當然可以結合起來使用。
? ? ? ?jps -l查看jvm進程和主類。-v可以查看虛擬機啟動時顯示指定的jvm參數。
? ? ? ?jps參考文章
2. jinfo_查看和調整JVM參數
jinfo 可以實時查看正在運行的 java 應用程序的系統屬性,JVM參數和命令行參數:
也可以動態的修改JVM參數,下圖是設置OOM時導出快照文件的路徑:
jinfo參考文章
3. jstat_統計內存和GC信息(Java Virtual Machine statistics monitoring tool)
? ? ? ?Jstat可以用來監控本地或遠程虛擬機各種運行狀態的命令行工具,包括了對類裝載、內存、垃圾收集、jit編譯的監控。是在沒有GUI界面的服務器定位虛擬機entity的常用工具。
jstat參考文章
jstat參考文章
4. jmap_查看和轉儲堆快照(Java Memory Map)
? ? ? ?可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存泄漏,檢查一些嚴重影響性能的大對象的創建,檢查系統中什么對象最多,各種對象所占內存的大小等等??梢允褂胘map生成Heap Dump,也可以使用kill -3“恐嚇”下虛擬機來獲取堆快照
如jmap -dump:format=b,file=d:\dump1215.bin 8804導出快照文件到d:\dump1215.bin
jmap參考文章
jmap參考文章
? ? ? ? jhat_解析堆轉儲文件(JVM Heap Analysis Tool)和jmap 命令搭配使用,可以用來分析 jmap 生成的堆轉儲快照。先用jmapdump出文件,然后用jhat來分析,可以通過瀏覽器來訪問。
? ? ? ?但不推薦使用,因為jhat命令特別耗費CPU和內存,不會在服務器上使用,一般要把dump文件拷貝出來在自己電腦上分析,但其實既然拷貝出來了就不用這個命令行工具了,比如mat工具就比jhat好用很多。
5. jstack_生成線程快照
? ? ? ?jstack會生成JVM當前時刻的線程快照,然后我們可以通過它查看某個Java進程內的線程堆棧信息,通常來說,當線上CPU使用率較高的時候,我們可以通過jstack查詢占用CPU較高的一些線程的使用情況,比如發生了死鎖,線程阻塞等相關操作。一般情況下,jstack會配合其他命令一塊進行操作,比如top,ps等命令。
jstack參考文章
2. 圖形化監控工具
2.1 jconsole_圖形化的分析工具
? ? ? ?它用于連接正在運行的本地或者遠程的JVM,對運行在java應用程序的資源消耗和性能進行監控,并畫出大量的圖表,提供強大的可視化界面。而且本身占用的服務器內存很小,甚至可以說幾乎不消耗。推薦使用jvisualvm
jconsole參考文章
2.2 jvisualvm_強大的圖形化分析工具,推薦
? ? ? ?jvisualvm是一個綜合性的分析工具,可以認為其整合了jstack、jmap、jinfo等眾多調試工具的功能,并以圖形界面展示??梢哉J為jvisualvm是jconsole的升級版。并且jvisualvm支持插件,非常好用。
? ? ? ?從jdk 9開始, visualVM不再集成在JDK中, 需要單獨下載安裝。下載地址: https://visualvm.github.io/download.html。下載之后,解壓到JDK目錄下,層級對應覆蓋即可。另外idea本身有jvisualvm的插件,可以使用。
jvisualvm參考文章
第三方監控工具
? ? ? ?對jvm監控的常見可視化工具,除了jdk本身提供的Jconsole和visualVm以外,還有第三方提供的jprofilter,perfino,Yourkit,Perf4j,JProbe,MAT等。這些工具都極大的豐富了我們定位以及優化jvm方式。
? ? ? ?這些工具的使用,網上有很多教程提供。對于VisualVm來說,比較推薦使用,它除了對jvm的侵入性比較低以外,還是jdk團隊自己開發的,相信以后功能會更加豐富和完善。jprofilter對于第三方監控工具,提供的功能和可視化最為完善,目前多數ide都支持其插件,對于上線前的調試以及性能調優可以配合使用。
? ? ? ?還有阿里巴巴開源的java線上排查利器arthas
總結
以上是生活随笔為你收集整理的JVM监控工具有哪些的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 问到ConcurrentHashMap不
- 下一篇: 数据结构和算法之时间复杂度