美文网首页
HeapDumpOnOutOfMemoryError参数开启

HeapDumpOnOutOfMemoryError参数开启

作者: atdoking | 来源:发表于2020-03-23 13:53 被阅读0次

    如果发生了内存泄露,好重现的话打开JVM的HeapDumpOnOutOfMemoryError参数,待到有了Heap Dump再使用MAT等工具分析。如果不好重现,使用JVisualvm,或者jmap,Jprofiler进行Heap Dump,使用MAT进行分析。根据以上列表,对代码进行审查,对写代码的同学进行交流,也许很快也能找泄露的原因。
    1、配置方法
    在JAVA_OPTIONS变量中增加

        -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=${目录}。
        例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"
    

    2、参数说明

    (1)-XX:+HeapDumpOnOutOfMemoryError参数表示当JVM发生OOM时,自动生成DUMP文件。

    (2)-XX:HeapDumpPath=${目录}参数表示生成dump文件的路径,也可以指定文件名称,例如:

    -XX:HeapDumpPath=${目录}/java_heapdump.hprof。
    如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
    

    参数的含义
    -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
    -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
    -Xms128m JVM初始分配的堆内存
    -Xmx512m JVM最大允许分配的堆内存,按需分配
    -XX:PermSize=64M JVM初始分配的非堆内存
    -XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

    我是在一次导出了可执行的jar包用于生产环境加工一些数据的命令用

    java $JAVA_OPTIONS -jar yourExcut.jar
    

    相关文章

      网友评论

          本文标题:HeapDumpOnOutOfMemoryError参数开启

          本文链接:https://www.haomeiwen.com/subject/qrkwyhtx.html