1. 程式人生 > 其它 >jvm效能分析

jvm效能分析

jprofile工具,參考 https://www.cnblogs.com/jpfss/p/8488111.html

以下是jdk自帶工具(jps, jstack, jmap, jconsole)的探討:

java環境 :jdk 1.8(基於ubantu)

【jstat】

參考  https://www.jianshu.com/p/845924a1b8f2,https://www.cnblogs.com/sxdcgaq8080/p/11089841.html

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

 獲取某個程序pid後,檢視對應資訊

jstat -options

-class 顯示ClassLoad的相關資訊;
-compiler 顯示JIT編譯的相關資訊;
-gc 顯示和gc相關的堆資訊;
-gccapacity    顯示各個代的容量以及使用情況;
-gcmetacapacity 顯示metaspace的大小
-gcnew 顯示新生代資訊;
-gcnewcapacity 顯示新生代大小和使用情況;
-gcold 顯示老年代和永久代的資訊;
-gcoldcapacity 顯示老年代的大小;
-gcutil   顯示垃圾收集資訊;
-gccause 顯示垃圾回收的相關資訊(通-gcutil),同時顯示最後一次或當前正在發生的垃圾回收的誘因;
-printcompilation 輸出JIT編譯的方法資訊

  

 

報錯{pid} not found,實際java 程序 30721正常執行著呢,查了一下

 

 java程序預設把 jvm perfdata寫入/tmp/hsperfdata_{user}/{pid}中(即jstat 預設讀取這個檔案)

但我的程式是自啟動的,即通過systemctl start {service-name}來啟動的,找一下這個檔案,並cp到/tmp/hsperfdata_{user}/下

 

再次檢視效能