Java 内存泄漏监控检测与分析

    xiaoxiao2023-09-29  125

    文章目录

    1.获得转储文件1.自动dump内存泄漏文件2.手动dump Java的内存文件 2.MAT的使用3.内存泄漏分析实战

    1.获得转储文件

    1.自动dump内存泄漏文件

    在运行时加上参数-XX:+HeapDumpOnOutOfMemoryError,JVM就会在内存泄漏时自动地生成hprof格式的dump文件。

    2.手动dump Java的内存文件

    先确定Java程序的pid:

    ps -aux | grep java

    然后运行命令:

    jmap -dump:format=b,file=dump.hprof pid

    Java内存文件就会被dump出来。

    2.MAT的使用

    先下载软件:Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

    目前的最新版本是1.8.1。

    然后打开文件,选择默认的Leak Suspects Report 然后内存泄漏报告会展示出来: 回到OverView页面,下面有几个常用的选项:

    3.内存泄漏分析实战

    打开内存泄漏页面: 看到下面的说明:

    The class "java.lang.ref.Finalizer", loaded by "<system class loader>", occupies 3,978,336 (36.07%) bytes. The memory is accumulated in one instance of "java.lang.ref.Finalizer" loaded by "<system class loader>". Keywords java.lang.ref.Finalizer

    点击Details查看详情: 先说明一下java.lang.ref.Finalizer是什么:

    java.lang.ref.Finalizer 是(没时间写博客了,以后再写)

    最新回复(0)