`

生产环境java虚拟机jvm监控优化

    博客分类:
  • jvm
 
阅读更多

    生产环境由于研发人员不能随便修改,没有权限,所以只能另辟蹊径。

    我这里的案例是以个人所在公司来将,研发环境、测试环境要修改某个参数,比较简单,要监控内容比较方便。生产环境只有读权限,没有写权限,运维的人也不可能帮你修改,得按流程走。

    如果生产环境的应用出现无法通过日志来排查的问题,或者问题很可能与JVM有关的话,还要走完流程,才能了解JVM的状况。还有,如果要了解应用出现问题是,通过jmap生成虚拟机jump文件,也不可能,因为对于实时数据处理的应用来讲,如果设置了jvm挂掉后自动生成jump文件,不太实际,因为运维人员不可能等jvm挂了,重启应用,因为jvm在挂之前,就会出现数据接收慢、异常等问题,运维要么切备机,要么重启。

    所以为了防范于未然,就要提前做好jvm监控工作。

    下面就从几个方面进行了解:

    一、jvm日志

          要打印jvm日志,必须先了解jvm的指令

         jvm的主要监控参数:

 

jvm监控参数 参数说明 输出示例
-XX:+PrintGC 打印GC信息 3.830: [GC 31488K->2865K(120512K), 0.0060870 secs]
-XX:+PrintGCDetails 打印GC详细信息 1.866: [GC [PSYoungGen: 34321K->5166K(36672K)] 34321K->7105K(120512K), 0.0044310 secs] [Times: user=0.02 sys=0.01, real=0.00 secs]
-XX:+PrintGCTimeStamps 打印的是JVM以启动时间为基准的相对时间 1.650: [GC 34369K->7085K(120512K), 0.0048720 secs]
-XX:+PrintGCDateStamps 打印的是JVM以启动时间为基准的相对时间(以可读化的方式显示) 2013-08-25T11:15:40.312+0800: 1.769: [GC 34321K->7084K(120512K), 0.0047500 secs]
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期间程序暂停的时间.可与上面混合使用 Total time for which application threads were stopped: 0.0003350 seconds
-Xloggc:{FilePath} 日志信息记录到文件路径 -Xloggc:/logs/jvm.log
-XX:+HeapDumpOnOutOfMemoryError

 

在JVM出现内存溢出或泄露时,自动生成DUMP文件  
-XX:HeapDumpPath={FilePath} DUMP文件目录 -XX:HeapDumpPath=/logs/jvmdump/jvmDump.hprof

 

推荐组合:

 -XX:+PrintGCDetails -XX:+PrintGCDateStamps  -Xloggc:/logs/jvm.log

 

说明:

在/logs/jvm.log文件中记录,以yyyy-MM-ddTHH:mm:ss.sss开头方式打印JVM详细日志,

 

打印内容示例:

2013-08-25T11:37:18.599+0800: 1.055: [GC [PSYoungGen: 31488K->2833K(36672K)] 31488K->2833K(120512K), 0.0057740 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]

红色: -XX:+PrintGCDateStamps参数打印的时间

黄色:-XX:+PrintGCDetails参数打印jvm中垃圾回收情况

蓝色:-XX:+PrintGCDetails参数打印垃圾回收耗时

绿色:-XX:+PrintGCDetails参数打印垃圾回收耗时的数据来源

 

 

 

     jvm自动生成jump问题

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/logs/jvmdump/jvmDump.hprof

 参数说明

    (1)-XX:+HeapDumpOnOutOfMemoryError在JVM出现内存溢出或泄露时, 自动生成DUMP文件。

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

 

 

0
2
分享到:
评论

相关推荐

    实战Java虚拟机——JVM故障诊断与性能优化 pdf

    《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...

    实战JAVA虚拟机 JVM故障诊断与性能优化.rar

    《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的专著,旨在帮助开发者解决实际工作中遇到的JVM相关问题,提升系统的性能表现。通过对JVM内部机制的深入理解,我们可以更有效地调试、...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    《实战JAVA虚拟机—JVM故障诊断与性能优化》是一本深入探讨Java虚拟机(JVM)技术的书籍,旨在帮助开发者和系统管理员诊断并优化JVM相关的性能问题。本书内容丰富,涵盖了大量的实践案例,使得即便是初学者也能理解...

    实战Java虚拟机 JVM故障诊断与性能优化 葛一鸣

    《实战Java虚拟机 JVM故障诊断与性能优化》是由葛一鸣编著的一本专业书籍,主要探讨了如何在实际工作中解决Java虚拟机(JVM)的相关问题,以及如何进行性能调优。书中涵盖了许多关键的知识点,让我们一一展开讨论。 ...

    实战JAVA虚拟机 JVM故障诊断与性能优化.pdf

    通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化

    揭秘Java虚拟机-JVM设计原理与实现

    《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...

    Java虚拟机JVM性能优化(一):JVM知识总结

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为开发者提供了跨平台的运行环境。在Java应用的性能优化中,深入理解JVM的工作原理和进行适当的调优至关重要。本篇文章将对JVM的基础知识进行总结...

    实战Java虚拟机.pdf_java_

    随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java...《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。

    深入Java虚拟机 JVM pdf

    《深入Java虚拟机》是Java开发者必读的经典之作,它详细阐述了Java虚拟机(JVM)的工作原理和内部机制,对于理解Java程序的运行方式、优化代码性能以及排查问题具有极其重要的价值。这本书的第二版更是加入了更多...

    Java虚拟机-jvm故障诊断与性能优化-源码

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为开发者提供了跨平台的运行环境。在《实战Java虚拟机——JVM故障诊断与性能优化》一书中,作者深入探讨了如何对JVM进行故障排查和性能调优,通过...

    30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)

    Java虚拟机(JVM)是一种用于执行Java字节码的虚拟机环境。它允许Java程序在任何支持JVM的平台上运行而无需重新编译。JVM的关键特性包括平台独立性、内存管理和自动垃圾回收等。了解JVM的工作原理对于提高Java应用...

    实战JAVA虚拟机 JVM故障诊断与性能优化带源码

    《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的书籍,旨在帮助开发者解决在实际工作中遇到的JVM相关问题,提升系统的性能。这本书提供了丰富的源码实例,让读者能够深入理解JVM的工作...

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    ### Java虚拟机(JVM)内存设置与调优详解 #### 引言 在现代软件开发中,Java虚拟机(JVM)作为执行Java字节码的核心组件,其性能直接影响到Java应用的运行效率与稳定性。特别是在大数据处理场景下,合理设置JVM内存...

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).zip

    首先,我们要了解Java虚拟机(JVM)是Java程序运行的平台,它负责解释和执行Java字节码,为Java应用程序提供了一个跨平台的运行环境。JVM的核心功能包括类加载、字节码验证、内存管理、垃圾收集等。 在JVM性能调优...

    实战JAVA虚拟机 (JVM故障诊断与性能优化)【含源码】

    《实战JAVA虚拟机 (JVM故障诊断与性能优化)》是一本深度剖析JVM的实践指南,旨在帮助读者掌握JVM的内部工作机制,提升故障排查和性能调优的能力。本书可与周志明的《深入理解JAVA虚拟机》相媲美,提供了丰富的源码...

    实战Java虚拟机——JVM故障诊断与性能优化

    《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。, 《实战Java虚拟机——JVM故障诊断与性能优化》共11章。第1~3章介绍了Java...

Global site tag (gtag.js) - Google Analytics