摘要:我們經常用到的一工具分析棧內存點擊下載分析堆內存。下面我詳細介紹一下他們具體是使用方法是自帶的一個分析工具,我們可以在的安裝目錄找到中找到。
Java 內存堆棧分析。我們在分析現網問題時候,經常會遇到一些問題從日志上無法分析的疑難問題。在我們舉足無措的時候,我們可以分析一些JVM內存,來看看問題出在哪里了。
我們經常用到的一工具:
分析棧內存(stack):jstack/kill -3 + IBM Thread and Monitor Dump Analyzer for Java (點擊下載)
分析堆內存(heap): jmap + jhat。
我們通常是從棧信息入手來進行分析。下面我詳細介紹一下他們具體是使用方法:
jstack是java自帶的一個分析工具,我們可以在java的安裝目錄找到:$JAVA_HOME/bin 中找到。
使用方法usage里面的介紹非常明確了,我就不去翻譯啦。我這里舉個例子:
我們先查詢一下java進程,因為jstack要根據java進程號來打印stack信息:
ps -ef|grep java
將stack信息記錄到stack.out文件中: jstack -l 31155 > stack.out
我們再用BM Thread and Monitor Dump Analyzer for Java這個工具來分析。
這里可以清晰的看到線程數狀態統計,和每個線程的狀態。
具體的分析我們可以看看這篇文章。http://jameswxx.iteye.com/blog/1041173
jmap + jhat。這個兩個命令也是java自帶的,在$JAVA_HOME/bin中你也可以找到他們兩個。
基本使用方法是:
先打印heap信息:jmap -dump:live,format=b,file=heap.bin
注意這個文件一般會很大。要看應用服務。
使用jhat分析:jhat -J-mx1024M heap.bin
這個命令會啟動一個Server服務,默認的端口是7000。其中-mx是設置最大使用多少內存,如果你要分析的heap文件很大的話,這個值要配置很大,不然會包內存異常的錯誤。
我們主要看這個兩個部分:
Show instance counts for all classes (excluding platform)
Show heap histogram
平臺外的對象信息,和對象heap樹狀圖,這個樹狀圖包括所有對象的個數已經占有大小,占用的大小是bytes。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64272.html
面試官:今天要不來聊聊JVM調優相關的吧?面試官:你曾經在生產環境下有過調優JVM的經歷嗎?候選者:沒有面試官:...候選者:嗯...是這樣的,我們一般優化系統的思路是這樣的候選者:1. 一般來說關系型數據庫是先到瓶頸,首先排查是否為數據庫的問題候選者:(這個過程中就需要評估自己建的索引是否合理、是否需要引入分布式緩存、是否需要分庫分表等等)候選者:2. 然后,我們會考慮是否需要擴容(橫向和縱向都...
摘要:點擊進入我的博客命令行工具這些工具大多數是類庫的一層薄的包裝,它們的主要功能代碼是在類庫中實現的。可視化工具是到目前為止隨發布的功能最強大的運行監視和故障處理程序,并且可以預見在未來一段時間內都是官方主力發展的虛擬機故障處理工具。 點擊進入我的博客 3.1 JDK命令行工具 showImg(https://segmentfault.com/img/remote/14600000174...
摘要:虛擬機性能監控與故障處理工具詳解概述本文參考的是周志明的深入理解虛擬機第四章,為了整理思路,簡單記錄一下,方便后期查閱。虛擬機堆轉儲快照分析工具功能用于分析生成的。 虛擬機性能監控與故障處理工具 詳解 4.1 概述 本文參考的是周志明的 《深入理解Java虛擬機》 第四章 ,為了整理思路,簡單記錄一下,方便后期查閱。 JDK本身提供了很多方便的JVM性能調優監控工具,除了集成式的Vis...
閱讀 1764·2021-10-11 10:59
閱讀 2403·2021-09-30 09:53
閱讀 1765·2021-09-22 15:28
閱讀 2796·2019-08-29 15:29
閱讀 1558·2019-08-29 13:53
閱讀 3207·2019-08-29 12:34
閱讀 2850·2019-08-26 10:16
閱讀 2661·2019-08-23 15:16