linux – 创建heapdumps的替代方案,性能比jmap更高?
我必须创建heapdumps,它适用于jmap.我的问题是,jmap创建heapdump文件需要很长时间.特别是当堆越来越大(> 1GB)时,它需要太长时间.
一种情况为例: 我知道-XX:HeapDumpOnOutOfMemoryError,但大部分时间我都可以在jvm抛出异常之前找到内存问题. 有没有替代jmap可以更快地写入heapdumps? 这个问题是编程和系统管理之间的混合,但我认为我在这里是正确的位置. 解决方法
我找到了问题的答案.
this回答关于serverfault的另一个问题给了我这个想法. >使用gdb连接到您的java进程 在步骤4中,指定正确的java二进制文件至关重要,否则jmap无法附加到核心转储.如果您不确定哪个二进制文件用于java进程,请使用gdb打开核心转储: 创建核心转储要比通过jmap直接创建heapdump快得多.这样,您可以创建一个java进程的堆转储,而无需太长的停机时间. 编辑: Error attaching to core file: Can't attach to the core file 要为jmap调用获取正确的java二进制文件,请使用gdb打开核心转储: gdb --core=[path tp core file] 会有这样的一行,告诉你正确的二进制文件: Core was generated by `/opt/tomcat/bin/jsvc'. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |