java内存异常自动dump

如何自动dump资源

我们可以让JAVA应用在OOM时dump一份内存快照,事后我们只要分析这个内存快照,一下就可以知道是哪些可恶的对象占用了所有的内存,并且还无法释放。此时你就需要在JVM的启动参数中加入如下的一些参数:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/agents/java-dump/

第一个参数意思是在OOM的时候自动dump内存快照出来,第二个参数是说把内存快照放到哪儿去,只要你加入了这两个参数,在JVM OOM崩溃的时候,无论你是立马主动收到一个报警,还是被动让客服通知了你,立马就可以去找OOM时候的内存快照了。

JVM的启动参数中加入如下的一些参数

在test环境中增加:’-XX:+HeapDumpOnOutOfMemoryError’,‘-XX:HeapDumpPath=/opt/agents/java-dump/‘

如何手动dump资源:

1、进入pod的终端界面执行以下任意命令:

jmap -dump:live,file=/opt/agents/java-dump/xxx.dump 1
jmap -dump:format=b,file=/opt/agents/java-dump/xxx.dump 1

上一篇:在PHP中操作文件的扩展属性


下一篇:linux中core dump开启使用教程