`
gaohuier
  • 浏览: 38271 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

    博客分类:
  • JVM
 
阅读更多

在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文件,无需额外的参数配置

分享到:
评论

相关推荐

    Jvm堆栈dump文件分析

    5. **解读和优化**:根据分析结果调整JVM参数、优化代码、修复内存泄漏等问题,然后重新测试以验证改进效果。 总的来说,HeadAnalyzer 4.1.4是WebSphere环境下Java性能调优的重要工具,通过深入解析dump文件,它能...

    idea插件JVM内存工具JProfiler11

    首先,JProfiler11是一款专业级别的Java性能分析工具,它能够对JVM进行深入的内存和CPU分析。通过集成到Idea中,开发者可以直接在IDE内部进行性能检测,无需离开熟悉的开发环境。只需下载JProfiler11的安装包,并...

    weblogic内存调优

    总之,WebLogic内存调优涉及到JVM内存各个区域的合理配置,需要根据应用程序的特性和负载情况进行调整。合理的内存分配可以避免频繁的垃圾收集,提高系统的响应速度,并确保服务的稳定性。在实践过程中,应监控内存...

    JVM内存模型以及垃圾回收相关资料

    此外,监控线程Dump和Apache日志可以帮助诊断内存问题,找出内存消耗大的程序并进行优化。 总的来说,理解JVM内存模型和垃圾回收机制对于优化Java应用性能至关重要,它涉及到内存分配策略、垃圾收集算法的选择以及...

    Java虚拟机_JVM_参数配置

    本文将深入探讨JVM参数配置的相关知识点。 1. **JVM内存配置**: JVM内存分为几个主要区域,包括堆内存(Heap)、年轻代(Young Generation)、老年代(Tenured Generation)、方法区(Method Area)和本地方法栈...

    jvm工具、参数调优&调试技巧(补充+修正版)

    6. -XX:+PrintFlagsFinal:查看所有默认和已设置的JVM参数值,便于了解当前配置。 三、调试技巧 1. 使用-XX:+HeapDumpOnOutOfMemoryError参数,当发生OOM时自动生成堆转储文件,以便分析内存泄漏。 2. 异常日志...

    weblogic jvm调优

    4. **优化配置**:根据应用实际情况,合理调整JVM参数,如增大堆内存、调整GC策略等。 #### 六、使用分析工具解决内存不足和内存泄漏错误 在实践中,借助专业的分析工具是非常必要的。例如: - **MAT(Memory ...

    JVM内存问题最佳实践

    - **合理配置JVM参数**:根据应用程序的实际需求合理设置堆内存和其他内存区域的大小。 - **定期进行代码审查**:查找潜在的内存泄漏源。 - **使用工具辅助检测**:定期使用内存分析工具检查应用的内存使用情况。 #...

    JVM 参数配置详细介绍

    Java虚拟机(JVM)是Java程序运行的基础,它的参数配置对于优化应用程序的性能至关重要。以下是对JVM参数配置的详细说明: 1. **堆内存配置**: - `-Xms`:设置JVM启动时分配的初始堆内存大小。 - `-Xmx`:设置...

    美团JVM问题定位和排错

    4. **GC问题**:通过`jstat`监控GC的频率和耗时,使用`GCViewer`等工具分析GC日志,判断是否存在频繁的Full GC等问题。 5. **业务逻辑错误**:仔细审查业务日志,关注异常堆栈和错误信息,结合业务流程和上下游关系...

    IBMjvm内存分析工具

    IBM JVM提供了丰富的GC选项和策略,可以通过调整这些参数来优化内存管理,避免内存耗尽。 IBM提供的这个内存分析工具包含了以下组件: 1. `ha.log.0`:这可能是一个日志文件,记录了JVM运行时的详细信息,包括GC...

    gcviewer-1.29-bin.zip

    日志文件的格式通常为`-XX:+PrintGCDetails`或`-XX:+PrintGCDateStamps`等JVM参数配置下的输出。 在界面中,GCViewer会展示一个时间轴,其中每个GC事件都会以波形的形式显示。通过颜色区分,你可以直观地看出不同...

    JVM分析工具

    这可能是一个文档或日志,详细记录了JVM的配置参数和运行时信息。通过分析这个文件,开发者可以了解JVM的启动选项设置,包括堆大小、垃圾收集器类型、编译器策略等,从而调整以适应特定应用的需求。 4. **Memory ...

    jvm工具、参数调优&调试技巧

    以上介绍的各种JVM工具和参数对于Java开发人员来说是非常重要的,它们能够帮助我们更好地理解和管理JVM的行为,从而提高应用程序的性能和稳定性。在实际应用中,根据具体情况选择合适的工具和参数进行配置和调优是...

    监测JVM各项性能指标

    - **jstat**:命令行工具,用于收集JVM的统计信息,包括GC、类装载、内存和编译器的数据。 - **jinfo**:提供配置信息,如JVM参数,可以实时修改某些非安全的运行时参数。 - **jmap**:用于生成堆内存映射或dump...

    JVM性能调优分析过程

    7. **异常处理与日志**:配置当出现OOM(Out Of Memory)时生成内存dump文件和GC日志,便于后期分析问题原因。 通过上述方法,我们可以构建出一个更适应业务需求的JVM运行模型,优化内存利用率,降低GC频率,提高...

    jvm 调优建议文档

    - **常见OOM分析**:OOM (Out Of Memory) 是常见的内存问题之一,通过分析堆转储文件和GC日志,可以定位问题原因。 - **dump分析工具**:如JProfilere、Eclipse Memory Analyzer等工具可以帮助开发者分析堆转储文件...

    对JVM调优的总结经验.docx

    此外,还需要了解 Java 应用程序的运行环境和配置,包括操作系统、 JVM 参数、应用程序的配置等。 JVM 调优的步骤 JVM 调优的步骤可以分为以下几个步骤: 1. 根据需求进行 JVM 规划和预调优:在开始 JVM 调优之前...

    JVM优化方案

    例如,`-Xms2048m -Xmx2048m`设置了JVM的最小和最大堆内存为2GB,`-Xmn512m`指定了新生代的大小为512MB,`-XX:MaxPermSize=256m`设定了永久代的最大值为256MB,而`-Xss128k`则表示每个线程的栈空间大小为128KB。...

    weblogic dump 学习

    - **GC状态检查**:通过WebLogic控制台查看JVM的空闲内存变化情况,GC的回收情况,也可以通过服务启动脚本添加GC日志来查看GC回收效果。在控制台强制执行垃圾回收,分析回收的内存是否过小,这可能预示内存溢出的...

Global site tag (gtag.js) - Google Analytics