我使用下面的命令来获取堆转储
jmap -dump:live,format=b,file=/tmp/heap2.bin <pid>
VM选择:
-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=1500
-XX:G1HeapRegionSize=2 -XX:+PrintFlagsFinal -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2
But this command generates 300+ MB bin heap dump file for process running with 1.2 GB memory
(顶级命令的RES列中显示了1.2 GB内存)
编辑: 我已在 @kdgregory 建议后删除了:live选项,但由于G1GC
问题未生成堆转储(相关的SE问题:Java heap dump error with jmap command : Premature EOF)
我的疑问:
如何使用CMS等其他GC算法获取完整的堆转储进程?
如何与PermGen内存一起获得堆转储?(来自命令行的permstat对我没用)。我对分析PermGen OutOfMemory错误感兴趣。