1. 程式人生 > >3.設定JVM記憶體溢位時快照轉存HeapDump到檔案

3.設定JVM記憶體溢位時快照轉存HeapDump到檔案

診斷記憶體溢位是一個有難度的事情,可以在生產環境試一試下面的引數,在發生記憶體溢位OutOfMemoryError時做HeapDump並儲存到檔案,然後分析該檔案看是否能查到蛛絲馬跡。

set JAVA_OPTS=-Xms100m -Xmx192m  ^
-XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=c:\jakarta-tomcat\webapps

Java Heap Dump檔案格式是一個HPROF二進位制格式,需要特殊的工具才能進行分析,而這個檔案通常都比較大,如果你的Heap Dump檔案超過了幾百MB,那就不要再寄希望於jhat了,因為jhat需要數倍於dump檔案的記憶體。這個時候你可以用MAT(Memory Analyzer),用MAT你可以在有2GB可用記憶體的機器上分析大約1GB左右的Dump檔案。