JVM(4)-虛擬機器效能監控與故障處理工具

Zouxxyy發表於2019-03-25

我的JDK工具地址

zxysMac:~ elwg$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin
zxysMac:bin elwg$ ls
appletviewer	javah		jjs		jvisualvm	schemagen
extcheck	javap		jmap		keytool		serialver
idlj		javapackager	jmc		native2ascii	servertool
jar		jcmd		jps		orbd		tnameserv
jarsigner	jconsole	jrunscript	pack200		unpack200
java		jdb		jsadebugd	policytool	wsgen
javac		jdeps		jstack		rmic		wsimport
javadoc		jhat		jstat		rmid		xjc
javafxpackager	jinfo		jstatd		rmiregistry
複製程式碼

JDK的命令列工具

名稱 全名 主要功能
jps JVM Process Status 顯示指定系統的所有的虛擬機器程式
jstat JVM Statistics Monitoring Tool 用於收集虛擬機器各方面的執行資料
jinfo Configuration Info for Java 顯示虛擬機器配置資訊
jmap Memory Map for Java 生成虛擬機器的記憶體轉儲快照(heapdump檔案)
jhat JVM Heap Dump Browser 用於分析heapdump檔案
jstack Stack Trace for Java 顯示虛擬機器的執行緒快照

jps:虛擬機器程式狀況工具

  • 功能:可以列出執行的虛擬機器程式、看到虛擬機器執行的主類、本地虛擬機器唯一ID

  • 命令格式: jps [ option ] [ hostid ]

  • 主要選項:

JVM(4)-虛擬機器效能監控與故障處理工具

  • 例子:我在IDEA中執行列一個java檔案,測試如下:
(base) zxysMac:~ elwg$ jps -l
16387 org.jetbrains.idea.maven.server.RemoteMavenServer
44422 sun.tools.jps.Jps
44392 com.zouxxyy.jvm.chap4.JpsTest
31368 org.jetbrains.kotlin.daemon.KotlinCompileDaemon
16217
44393 org.jetbrains.jps.cmdline.Launcher
複製程式碼

jstat:虛擬機器統計資訊監視工具

  • 功能:可以顯示本地或遠端虛擬機器程式中的類裝載、記憶體、垃圾收集、JIT編譯等執行資料
  • 命令格式:jstat [ option vmid [interval[s|ms] [count]] ]
  • 主要選項:

JVM(4)-虛擬機器效能監控與故障處理工具

jinfo:Java配置資訊工具

  • 功能:實時檢視和調整虛擬機器各項引數

  • 命令格式:jinfo [ option ] pid

  • 例子:看有沒有用SerialGC

(base) zxysMac:~ elwg$ jinfo -flag UseSerialGC 46521
-XX:-UseSerialGC
複製程式碼

jmap:Java記憶體映像工具

  • 功能:生成虛擬機器堆存轉儲快照(heapdump檔案)
  • 命令格式:jmap [ option] vmid
  • 主要選項:

JVM(4)-虛擬機器效能監控與故障處理工具

jhat:虛擬機器堆快照分析工具

與jmap配合使用,也就是分析堆存轉儲快照(heapdump檔案)。

jstack:Java堆疊跟蹤工具

  • 功能:用於生成虛擬機器的執行緒快照
  • 命令格式:jstack [ option ] vmid
  • 主要選項:

JVM(4)-虛擬機器效能監控與故障處理工具

JDK的視覺化工具

JConsole:Java監視與管理控制檯

記憶體監控,相當於視覺化的jstat命令

JVM(4)-虛擬機器效能監控與故障處理工具
執行緒監控,相當於視覺化的jstack命令,以下舉幾個簡單的例子

  • 監聽使用者鍵盤輸入

JVM(4)-虛擬機器效能監控與故障處理工具

  • 監聽wait()

JVM(4)-虛擬機器效能監控與故障處理工具

  • 監聽死鎖

JVM(4)-虛擬機器效能監控與故障處理工具

VisualVM:多合一故障處理工具

書上說它很強大,我還沒下載成功。它幾乎整合裡上面的所有功能啊。

JVM(4)-虛擬機器效能監控與故障處理工具

相關文章