轉載:http://blog.csdn.net/kevin_luan/article/details/8447896java
http://liulinxia02.blog.163.com/blog/static/26868772009111861834942/瀏覽器
http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/ 服務器
其中jmap是java自帶的工具eclipse
查看整個JVM內存狀態
jmap -heap [pid]
要注意的是在使用CMS GC 狀況下,jmap -heap的執行有可能會致使JAVA 進程掛起jvm
查看JVM堆中對象詳細佔用狀況
jmap -histo [pid]工具
導出整個JVM 中內存信息
jmap -dump:format=b,file=文件名 [pid]性能
jhat是sun 1.6及以上版本中自帶的一個用於分析JVM 堆DUMP 文件的工具,基於此工具可分析JVM HEAP 中對象的內存佔用狀況
jhat -J-Xmx1024M [file]
執行後等待console 中輸入start HTTP server on port 7000 便可使用瀏覽器訪問 IP:7000lua
eclipse Memory Analyzer
Eclipse 提供的一個用於分析JVM 堆Dump文件的插件。藉助這個插件可查看對象的內存佔用情況,引用關係,分析內存泄露等。
http://www.eclipse.org/mat/.net
kill -3 [pid]
在Linux 上找到Java所在的進程號,而後執行以上命令,線程的相關信息就輸出到console插件
jstack
jstack 是sun JDK 自帶的工具,經過該工具能夠看到JVM 中線程的運行情況,包括鎖等待,線程是否在運行
執行 jstack [pid] ,線程的全部堆棧信息
"http-8080-10" daemon prio=10 tid=x0a949bb60 nid=0x884 waiting for monitor entry [...]
"http-8080-10" 這個線程處於等待狀態。 waiting for monitor entry 若是在連續幾回輸出線程堆棧信息都存在於同一個或多個線程上時,則說明系統中有鎖競爭激烈,死鎖,或鎖餓死的想象。
「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狀態,等待獲取CPU的使用權.
參考:http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/
一.Java VisualVM 概述
對於使用命令行遠程監控jvm 太麻煩 。 在jdk1.6 中 Oracle 提供了一個新的可視化的。 JVM 監控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目錄下。
雙擊啓動 Java VisualVM 後能夠看到窗口左側 「應用程序 」欄中有「 本地 」、「遠程 」 、「快照 」三個項目。
「本地 」下顯示的是在 localhost 運行的 Java 程序的資源佔用狀況,若是本地有 Java 程序在運行的話啓動 Java VisualVM 便可看到相應的程序名,點擊程序名打開相應的資源監控菜單,以圖形的形式列出程序所佔用的 CPU 、 Heap 、 PermGen 、類、線程的 統計信息。
「遠程」 項下列出的遠程主機上的 Java 程序的資源佔用狀況,但須要在遠程主機上運行 jstatd 守護程序
VisualVM分爲 3 類, 本地 它會自動偵測到,並顯示出來
雙擊Local 下的任一節點,看到右邊的變化 ,你能夠監控 CPU ,內存,類,線程等運行情況,實時監控服務器性能。
右鍵 VisualVM咱們能夠看到 Thread Dump, Heap Dump
作 Thread Dump 很快,立刻就能夠看到結果
Heap Dump要稍花費一些時間(能夠看到當前 heap 裏對象的數量及佔用的比例,作 OOM 很好用)
對其功能再也不作描述,能夠查閱網上相關質量,咱們主要講的是如何使用 VisualVM 遠程監控。