jvisualvm分析linux环境下jvm内存溢出_jvm

一.安装jmap

第一次使用需要安装jmap命令。

1.安装openjdk-devel-debug

yum -y install java-1.8.0-openjdk-devel.x86_64

看好是以上命令而不是下面的。

yum install -y java-1.8.0-openjdk-devel-debug

成功后。

jvisualvm分析linux环境下jvm内存溢出_java_02

2.安装jmap

yum -y whatprovides '*/jmap'

成功后。

jvisualvm分析linux环境下jvm内存溢出_jvm_03

进入红框内,如果查看有jmap,发现安装成功。

jvisualvm分析linux环境下jvm内存溢出_java_04

二.使用jmap dump堆日志

查看所要dump的java程序pid。

ps -ef|grep java

jvisualvm分析linux环境下jvm内存溢出_java_05

执行以下命令。

jmap -dump:format=b,file=/heap.bin 61718

再在填写目录生成heap.bin文件(与hprof相同),然后就可以使用MAT进行分析了。

三.监控oom

但是这里有一个问题,当jmap时,应用暂停,这是生产环境不允许的,那么我们使用内存转储,当发生oom时,直接将日志转到硬盘中。

-XX:+HeapDumpOnOutOfMemoryError