java 1.7.45:如何获取进程的完整堆转储而不是截断的转储

时间:2015-12-03 17:08:40

标签: java linux heap-memory heap-dump

我使用下面的命令来获取堆转储

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

我的疑问:

  1. 如何使用CMS等其他GC算法获取完整的堆转储进程?

  2. 如何与PermGen内存一起获得堆转储?(来自命令行的permstat对我没用)。我对分析PermGen OutOfMemory错误感兴趣。

0 个答案:

没有答案