本文目錄一覽:
- 1、java dump文件怎麼生成和分析
- 2、linux下java dump文件在哪兒
- 3、宕機的時候,java dump 是什麼東西?這句話又是什麼意思?
- 4、什麼是java dump文件 怎麼生成
java dump文件怎麼生成和分析
jmap是java自帶的工具
1. 查看整個JVM內存狀態
jmap -heap [pid]
2. 查看JVM堆中對象詳細佔用情況
jmap -histo [pid]
3. 導出整個JVM 中內存信息,可以利用其它工具打開dump文件分析,例如jdk自帶的visualvm工具
jmap -dump:file=文件名.dump [pid]
linux下java dump文件在哪兒
如果所使用的應用伺服器是tomact,dump文件默認在catalina.out日誌文件里;
如果不是則可以查看java環境變數設置的位置,也就知道在dump文件的位置了;
如果沒有生成dump文件或者是生成錯誤,請按照一下幾種方法來修復:
系統默認的core文件生成路徑是 /var/logs,但是 /var/logs 目錄並非系統自帶的,系統初始安裝默認自帶的是/var/log,最終導致該系統出現core dump後並沒能生成core文件,因此如何查詢和修改系統默認的core dump文件生產路徑呢?方法如下:
一. 查詢core dump文件路徑:
方法1:
# cat /proc/sys/kernel/core_pattern
方法2:
# /sbin/sysctl kernel.core_pattern
二. 修改core dump文件路徑:
方法1:臨時修改:修改/proc/sys/kernel/core_pattern文件,但/proc目錄本身是動態載入的,每次系統重啟都會重新載入,因此這種方法只能作為臨時修改。
/proc/sys/kernel/core_pattern
例:echo 『/var/log/%e.core.%p』 /proc/sys/kernel/core_pattern
方法2:永久修改:使用sysctl -w name=value命令。
例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p
宕機的時候,java dump 是什麼東西?這句話又是什麼意思?
對於大型 java 應用程序來說,再精細的測試都難以堵住所有的漏洞,即便我們在測試階段進行了大量卓有成效的工作,很多問題還是會在生產環境下暴露出來,並且很難在測試環境中進行重現。JVM 能夠記錄下問題發生時系統的運行狀態並將其存儲在轉儲(dump)文件中,從而為我們分析和診斷問題提供了重要的依據。常見的轉儲文件包括 Java Dump, Heap dump 和 System dump。
什麼是java dump文件 怎麼生成
java dump heap 是分配給實例類和數組對象運行數據區,所有java線程在運行期間共享heap中的數據。Java heap dump相當於java應用在運行的時候在某個時間點上打了個快照(snapshot)。
有java dump文件生成的方式如下:
1.使用$JAVA_HOME/bin/jmap -dump來觸發,eg:jmap -dump:format=b,file=/home/longhao/heamdump.out
2.使用$JAVA_HOME/bin/jcosole中的MBean,到MBeancom.sun.managementHotSpotDiagnostic操作dumpHeap中,點擊 dumpHeap按鈕。生成的dump文件在java應用的根目錄下面。
3.在應用啟動時配置相關的參數 -XX:+HeapDumpOnOutOfMemoryError,當應用拋出OutOfMemoryError時生成dump文件。
4.使用hprof。啟動虛擬機加入-Xrunhprof:head=site,會生成java.hprof.txt文件。該配置會導致jvm運行非常的慢,不適合生產環境。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219808.html