日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

[Java基礎(chǔ)] 使用JMAP dump及分析dump文件

 liang1234_ 2019-05-09

轉(zhuǎn)載:http://blog.csdn.net/kevin_luan/article/details/8447896

http://liulinxia02.blog.163.com/blog/static/26868772009111861834942/

http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/ 

 

其中jmap是java自帶的工具

查看整個JVM內(nèi)存狀態(tài) 
jmap -heap [pid]
要注意的是在使用CMS GC 情況下,jmap -heap的執(zhí)行有可能會導(dǎo)致JAVA 進程掛起

查看JVM堆中對象詳細(xì)占用情況
jmap -histo [pid]

導(dǎo)出整個JVM 中內(nèi)存信息
jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自帶的一個用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中對象的內(nèi)存占用情況
jhat -J-Xmx1024M [file]
執(zhí)行后等待console 中輸入start HTTP server on port 7000 即可使用瀏覽器訪問 IP:7000

eclipse Memory Analyzer
Eclipse 提供的一個用于分析JVM 堆Dump文件的插件。借助這個插件可查看對象的內(nèi)存占用狀況,引用關(guān)系,分析內(nèi)存泄露等。
http://www./mat/


kill -3 [pid]
在Linux 上找到Java所在的進程號,然后執(zhí)行以上命令,線程的相關(guān)信息就輸出到console


jstack
jstack 是sun JDK 自帶的工具,通過該工具可以看到JVM 中線程的運行狀況,包括鎖等待,線程是否在運行
執(zhí)行 jstack [pid] ,線程的所有堆棧信息

"http-8080-10" daemon prio=10 tid=x0a949bb60 nid=0x884  waiting for monitor entry [...]

"http-8080-10" 這個線程處于等待狀態(tài)。 waiting for monitor entry 如果在連續(xù)幾次輸出線程堆棧信息都存在于同一個或多個線程上時,則說明系統(tǒng)中有鎖競爭激烈,死鎖,或鎖餓死的想象。


“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() [...]
 java.lang.Thread.State:waiting (on object monitor)
該表示http-8080-11的線程處于對象的Wait 上,等待其他線程的喚醒,這也是線程池的常見用法。

“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable [...] java.lang.Thread.State:runnable
表示“Low Memory Detector” 的線程處于Runable狀態(tài),等待獲?。茫校盏氖褂脵?quán).

 

參考:http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/

jvisualvm

一.Java VisualVM 概述

 

  對于使用命令行遠(yuǎn)程監(jiān)控jvm 太麻煩 。 在jdk1.6 中 Oracle 提供了一個新的可視化的。 JVM 監(jiān)控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目錄下。

 

   雙擊啟動 Java VisualVM 后可以看到窗口左側(cè) “應(yīng)用程序 ”欄中有“ 本地 ”、“遠(yuǎn)程 ” 、“快照 ”三個項目。

 

  “本地 ”下顯示的是在 localhost 運行的 Java 程序的資源占用情況,如果本地有 Java 程序在運行的話啟動 Java VisualVM 即可看到相應(yīng)的程序名,點擊程序名打開相應(yīng)的資源監(jiān)控菜單,以圖形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、類、線程的 統(tǒng)計信息。

 

  “遠(yuǎn)程” 項下列出的遠(yuǎn)程主機上的 Java 程序的資源占用情況,但需要在遠(yuǎn)程主機上運行 jstatd 守護程序

 

 

java內(nèi)存溢出分析工具:jmap使用實戰(zhàn) - zhuzhu - 五事九思 (大連Linux主機維護)
 

 

VisualVM分為 3 類, 本地 它會自動偵測到,并顯示出來

 

雙擊Local 下的任一節(jié)點,看到右邊的變化 ,你可以監(jiān)控 CPU ,內(nèi)存,類,線程等運行狀況,實時監(jiān)控服務(wù)器性能。

 

 

java內(nèi)存溢出分析工具:jmap使用實戰(zhàn) - zhuzhu - 五事九思 (大連Linux主機維護)
 

 

 右鍵 VisualVM我們可以看到 Thread Dump, Heap Dump

 做 Thread Dump 很快,馬上就可以看到結(jié)果

 

 

java內(nèi)存溢出分析工具:jmap使用實戰(zhàn) - zhuzhu - 五事九思 (大連Linux主機維護)
 

 

Heap Dump要稍花費一些時間(可以看到當(dāng)前 heap 里對象的數(shù)量及占用的比例,做 OOM 很好用)

 

 

java內(nèi)存溢出分析工具:jmap使用實戰(zhàn) - zhuzhu - 五事九思 (大連Linux主機維護)
 

 

 

對其功能不再做描述,可以查閱網(wǎng)上相關(guān)質(zhì)量,我們主要講的是如何使用 VisualVM 遠(yuǎn)程監(jiān)控。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多