iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
自我挑戰組

展開JDK工具的30天應用之旅系列 第 19

Day19-JDK中的多功能工具:jcmd(二)

  • 分享至 

  • xImage
  •  

前言

上一篇文章有提到,透過jcmd <pid> help(或jcmd <pid>)可以查看指定進程可使用的所有命令,接著這篇就要來大致介紹一些具體命令選項。
https://ithelp.ithome.com.tw/upload/images/20211004/20140481ZXwAJL9CDx.png

上面可以看到JFR這命令選項,他可以收集有關JVM以及在其上運行的Java應用程序的數據,他相當於JVM的黑盒子,後面若有機會再來介紹它


以下範例拿Day10-JDK查看虛擬機配置訊息工具:jinfo這篇的範例進行程序的運行(Step1.~Step3.)
我在 Step3.透過jps取得的進程是4221,以下示範的指令記得將4413改為欲查看的進程id喔!
https://ithelp.ithome.com.tw/upload/images/20211004/20140481BqlGTG9YAx.png

具體命令選項的介紹

jcmd <pid> <options>

透過jcmd <pid> help查到的options,可透過上面指令查看更詳細的相關訊息
若是想看該選項的作用,jcmd <pid> help <options>

  • GC.class_histogram

提供Java堆使用狀況的統計數據
https://ithelp.ithome.com.tw/upload/images/20211004/201404815W4LCCB8op.png

jcmd 4221 GC.class_histogram

https://ithelp.ithome.com.tw/upload/images/20211004/201404811EkTQNPncc.png
這指令看到的資訊就相當於jmap -histo <pid>顯示的內容(Day11-JDK堆內存快照工具-jmap(一)基本應用)
https://ithelp.ithome.com.tw/upload/images/20211004/20140481N8WjqdmHFv.png

  • GC.heap_dump

生成Java堆的hprof文件
https://ithelp.ithome.com.tw/upload/images/20211004/20140481f9IWYpQhN4.png

jcmd 4221 GC.heap_dump <filename>

https://ithelp.ithome.com.tw/upload/images/20211004/20140481HbSwU96pVn.png
https://ithelp.ithome.com.tw/upload/images/20211004/201404810ys1Qu5b5B.png

  • GC.heap_info

提供通用Java堆訊息
https://ithelp.ithome.com.tw/upload/images/20211004/20140481Fum8w7T4Y6.png

jcmd 4221 GC.heap_info

https://ithelp.ithome.com.tw/upload/images/20211004/20140481xIWnKJ7Nhl.png

  • Thread.print

查看進程執行緒訊息
相當於jstack命令所看到的內容(Day16-JDK堆棧跟蹤工具:jstack(一))
https://ithelp.ithome.com.tw/upload/images/20211004/20140481tWGEXbjOp9.png

jcmd 4221 Thread.print

https://ithelp.ithome.com.tw/upload/images/20211004/20140481rTLqQfuQi1.png
相當於jstack -l <pid>(Day16-JDK堆棧跟蹤工具:jstack(二))
https://ithelp.ithome.com.tw/upload/images/20211004/20140481ZcPudVRRlq.png

  • VM.uptime

查看指定進程運行了多久的時間
https://ithelp.ithome.com.tw/upload/images/20211004/20140481U1lGuOzT5w.png

jcmd 4221 VM.uptime

https://ithelp.ithome.com.tw/upload/images/20211004/20140481X3LKrahGzM.png

  • VM.version

輸出JVM版本資料
https://ithelp.ithome.com.tw/upload/images/20211004/201404819MjoYq8FGJ.png

jcmd 4221 VM.version

https://ithelp.ithome.com.tw/upload/images/20211004/20140481Pk4rw5zApS.png


上一篇
Day18-JDK中的多功能工具:jcmd(一)
下一篇
Day20-JDK GUI界面概述
系列文
展開JDK工具的30天應用之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言