打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JVM GC日志和内存DUMP参数配置

    在JVM出现内存溢出或泄露时,为便于排查和定位,需要JVM的启动上增加相应的参数。主要是GC日志和内存DUMP参数。详细如下。

    1.GC日志和内存DUMP参数配置

    本文参数配置基于各厂商的JDK 6.0版本,低版本或高版本的参数有可能不同。各厂商JVM GC日志和内存DUMP参数配置如下:

    (1)Oracle  JVM

    -Xloggc{目录}/managed1_gc.log

    -XX:+HeapDumpOnOutOfMemoryError

    -XX:HeapDumpPath=${目录}

    (2)HP JVM

    -Xverbosegc:file=${目录}/mananged1_gc.log

    -XX:+HeapDumpOnOutOfMemoryError  -XX:+HeapDumpOnCtrlBreak

    -XX:HeapDumpPath=${目录}

    (3)IBM JVM

    -XverboseGClog: ${目录}/mananged1_gc.log

    -Xdump:heap:events=user,file=${目录}/pid%uid%pid.phd

    2.GC日志参数说明

    2.1.Oracle JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加 -Xloggc{目录}/managed1_gc.log。

    2、参数说明

    (1)在集群环境下,建议按照节点名命名GC日志文件,例如节点1的名称为managed1,则日志文件命名为managed1_gc.log。

    (2)备注:如果只有-verbose:gc参数,gc日志会输出到控制台上,如果-verbose:gc和-Xloggc:filename参数共存,以-Xloggc为准。-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 可以增加,但是增加后产生的gc日志用HPjemeter工具不能识别,其中-XX:+PrintGC参数和单独的-verbose:gc或者单独的-Xloggc的输出是一样的,都是简要信息。

    2.2.HP JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加 -Xverbosegc:file=${目录}/mananged1_gc.log。

    2、参数说明

    (1)在集群环境下,建议按照节点名命名GC日志文件,例如节点1的名称为managed1,则日志文件命名为managed1_gc.log。

    (2)HP JVM的GC日志文件生成时会自动增加进程号(PID),例如:managed1_gc.log.2252,其中2252为Java进程ID。

    2.3.IBM JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加 -XverboseGClog{目录}/mananged1_gc.log。

    2、参数说明

    在集群环境下,建议按照节点名命名GC日志文件,例如节点1的名称为managed1,则日志文件命名为managed1_gc.log。

    3.内存DUMP参数说明

    3.1.Oracle JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加

    -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=${目录}。

    2、参数说明

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

    (2)-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。

    (3)Oracle JVM的6.0版本去掉了-XX:+HeapDumpOnCtrlBreak参数,如果需要产生DUMP文件,请采用jmap命令,命令行格式如下:

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

    其中managed1_heapdump.hprof表示生成的DUMP文件名称,pid表示Java进程号。

    3.2.HP JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加

    -XX:+HeapDumpOnOutOfMemoryError  -XX:+HeapDumpOnCtrlBreak

    -XX:HeapDumpPath=${目录}。

    2、参数说明

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

    (2)-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,如果不指定文件名,默认文件示例如下:java_pid2821.hprof.1313372696928,其中2821为Java进程号,1313372696928为自动生成的数字。

    (3)-XX:+HeapDumpOnCtrlBreak参数表示可以通过kill  -3  <pid>根据需要产生DUMP文件。

    3.3.IBM JVM

    1、配置方法

    在JAVA_OPTIONS变量中增加

    -Xdump:heap:events=user,file=${目录}/pid%uid%pid.phd。

    2、参数说明

    (1)-Xdump:heap:events=user,file=${目录}/pid%uid%pid.phd表示可以根据需要通过kill  -3  <pid>产生DUMP文件,%uid和%pid为变量。生成的文件名称示例:pidtestuser303118.phd,其中testuser为uid,303118为pid;IBM JVM采用kill -3同时会生成另外一个javacore文件,文件示例:javacore.20110815.173356.303118.0002.txt。

    (2)IBM JVM当发生OOM时会自动生成DUMP文件,无需额外的参数配置。

【责编:ivy】
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JVM学习(5)-- JVM参数及分析工具
JVM系列篇:JVM性能调优的6大步骤,及关键调优参数详解
Java 应用线上问题排查思路、常用工具小结
聊聊JVM(一)相对全面的GC总结
史上最全最详细的JVM优化方案---建议收藏
jvm 生成 javacore 和 heapdump 文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服