java面試-JDK自帶的JVM 監控和性能分析工具用過哪些?


一、JDK的命令行工具

1、jps(JVM Process Status Tools):虛擬機進程狀況工具

jps -l

2、jinfo(Configuration Info for java):Java配置信息工具

jinfo [option] pid  

3、jmap(Memory Map for java):java內存映像工具

用於生成堆轉儲快照,即dump文件

jmap -dump:format=b,file=eclipse.bin 3500  #3500是通過jps命令拿到的LVMID  

4、jstat(JVM Statistics Monitoring Tool):虛擬機統計信息監視工具

jstat -gc 2764 250 20 # -gc監視java堆狀況  每250毫秒查詢一次進程2764垃圾收集狀態,共查詢20次
jstat -gcutil 2754 #監視java堆內存使用狀況 
top -p 12309 -H   #-p用於指定進程,-H用於獲取每個線程的信息  

5、jhat(JVM Heap Analysis Tool):虛擬機dump文件分析工具

jhat eclipse.bin

屏幕顯示“server is ready”,用戶在瀏覽器中鍵入http://localhost:7000/就可以看到分析結果

6、jstack(Stack Trace for java):java堆棧跟蹤工具

jstack -l 3500   

用於生成虛擬機當前時刻的線程快照,即threaddump、javacore文件。

線程快照的目的:定位線程長時間停頓的原因 

線程長時間停頓的主要原因:等待外部資源(數據庫連接、網絡資源、設備資源)、死循環、鎖等待(活鎖和死鎖) 

二、JDK的可視化工具

JConsole:Java監視與管理控制台

VisualVM:多合一故障處理工具

 https://www.ibm.com/developerworks/cn/java/j-lo-visualvm/

三、堆外內存中的直接內存

使用JDK自帶的Native Memory Tracking(NMT特性)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM