`

生产环境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

 

分享到:
评论

相关推荐

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

    本书将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。  本书共11章。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器...

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

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

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

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

    后端JAVA虚拟机JVM调优必备工具

    IBM Thread and Monitor Dump Analyzer for Java专业JVM调优工具 一、使用方法 1.使用java -jar启动程序 2.找到需要分析的jvm进程 3.使用jstack [pid] &gt; /tmp/sdapjvmlog.txt导出进程的详细日志 4.使用程序打开...

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

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

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

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

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

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

    JVM故障诊断与性能优化(实战JAVA虚拟机).7z

    本书将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。 本书共11章。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。...

    实战JAVA虚拟机

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

    实战java虚拟机

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

    实战Java虚拟机.pdf_java_

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

    java虚拟机监控

    java 虚拟机监控,构建本地监控远程java虚拟机的visualvm应用,更加直观的分析java 应用的CPU、内存、堆/栈、线程等情况

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    第2章 Java内存区域与内存溢出异常 / 24 2.1 概述 / 24 2.2 运行时数据区域 / 25 2.2.1 程序计数器 / 25 2.2.2 Java虚拟机栈 / 26 2.2.3 本地方法栈 / 27 2.2.4 Java堆 / 27 2.2.5 方法区 / 28 2.2.6 运行...

    Jvmm是一个同时支持操作系统监控和Java虚拟机监控的工具,提供有丰富的监控功能

    Jvmm是一个同时支持操作系统监控和Java虚拟机监控的工具,提供有丰富的监控功能:OS监控(内存状态、CPU负载、磁盘IO吞吐率、磁盘健康状态、网卡IO等)、JVM监控(内存、线程、GC、类加载器等),还提供生成火焰图、...

    Java虚拟机监控方案.docx

     通过向远程虚拟机内部JMX代理注册各种服务来获取虚拟机的信息以及虚机上的应用程序信息,所有的监控过程不用依靠应用来提供信息  通过虚拟机内置的jstat指令获取内存各种堆和非堆的大小及其内存使用量  通过...

    java虚拟机知识点整理

    自己看书整理的 java虚拟机精品知识点 java内存区域与内存溢出处理 虚拟机栈和本地方法栈区别 对象定位访问 垃圾收集器GC管理 虚拟机GC垃圾回收收集算法(内存回收方法论) 虚拟机GC垃圾回收收集器(内存回收具体实现...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第20节Java虚拟机-高性能Java虚拟机00:02:58分钟 | 第21节Java虚拟机-TaobaoVM00:03:06分钟 | 第22节Java内存区域-简介00:07:56分钟 | 第23节Java内存区域-Java虚拟机栈00:12:04分钟 | 第24节Java内存区域-程序...

    钻研JAVA虚拟机 全面掌握JVM JAVA虚拟机深入浅出实战课程 视频附带课程代码

    ├─(1) 0801_【掌握】JVM内存模型.mp4 ├─(2) 0802_【掌握】Java对象访问模式.mp4 ├─(3) 0803_【掌握】JIT即时编译器.mp4 ├─(4) 0804_【掌握】JVM堆内存结构.mp4 ├─(5) 0805_【掌握】新生代内存管理.mp4 ├...

Global site tag (gtag.js) - Google Analytics