JVM架构(018)_如何监控jvm的运行情况

转载 2016年08月30日 16:10:45

1、如何监控jvm的运行情况

了解jvm内存模型看这里:java内存模型是什么样的 
了解jvm内存管理看这里:jvm是如何管理内存的 
了解jvm垃圾回收机制看这里:java垃圾回收机制是什么 
了解jvm内存优化看这里:java内存如何优化

我们通常使用Jdk工具来监控jvm的运行情况,当然目前有很多第三方产品是通过jdk提供的api来组织数据进行监控的。具体来说有如下监控软件:

  • Jconsole 
    jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。

  • JavaVisualVM 
    JDK自带,功能强大,与JProfiler类似。推荐使用,通过jdk/bin/jvisualvm即可启动。

  • JProfiler 
    商业软件,需要付费。功能强大。

2、监控软件都能监控什么

上面这些调优工具都提供了强大的功能,但是总的来说一般都类似,能够监控CPU、内存、线程等信息。

例如JavaVisualVM具有以下几类功能:CPU、堆、类、线程关键信息手动进行垃圾回收GC线程详细信息CPU、内存抽样信息生成堆Dump、线程Dump

了解Dump文件看这里:什么是Dump文件

CPU、堆、类、线程关键信息 
图形化CPMU、堆、类、线程关键信息供我们查看,并且可以通过”执行垃圾回收”可以手动进行垃圾回收GC。如图: 
这里写图片描述

线程详细信息 
应用中每个线程的详细信息,包括运行时、休眠、等待、驻留、监视等状态的线程。如图: 
这里写图片描述

CPU、内存抽样信息 
通过收集一段时间的CPU、内存运行数据,展示内存和线程的详细信息。如图: 
这里写图片描述

生成堆Dump、线程Dump 
通过生成某个应用的堆、线程Dump来分析具体的Dump文件。 
通过堆Dump可以监控:堆详细概要信息堆内类对象分析堆内对象实例详细信息OQL堆信息自定义查询 
通过线程Dump可以监控:线程状态变化线程堆栈信息

如图: 
这里写图片描述

堆详细概要信息 
展示堆Dump的概要信息,包括堆基本信息、环境、系统属性、堆转储上的线程。如图: 
这里写图片描述

堆内类对象分析 
展示堆内使用到的所有类,以及它们的实例数和占用大小。默认按照实例数倒序。如图: 
这里写图片描述

堆内对象实例详细信息 
通过类可以进入指定类的实例详细信息,包括每一个实例的详细信息。如图: 
这里写图片描述

OQL堆信息自定义查询 
通过OQL语言查询我们想得到的结果。如图: 
这里写图片描述

线程Dump信息 
通过打印线程堆栈,展示线程状态变化,以及运行信息。如图: 
这里写图片描述

我们能够根据我们监控的到信息,能够让我们发现代码的问题优化的办法

JVM状态监控常用命令整理总结

java.lang.OutOfMemoryError: Java heap space这个错误表示JVM的新生代和老生代的内存不足。出现这个错误说明应用程序出现了内存溢出或者程序所需要的内存大于JVM...
  • yuhaibo6646737
  • yuhaibo6646737
  • 2017年02月07日 14:48
  • 674

JVM监控与调优

原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html 目录 参数设置 收集器搭配 启动内存分配 监控工具和方法 调优方法 调优实例...
  • buptdavid
  • buptdavid
  • 2015年01月29日 14:36
  • 9740

深入理解JVM—性能监控工具

 源自博客园: http://www.cnblogs.com/duanxz/p/3712734.html 我们知道,在JVM编译期和加载器,甚至运行期已经做了大量的调优操作,但是那些都是J...
  • wuqiqing_1
  • wuqiqing_1
  • 2016年08月13日 16:30
  • 7438

远程监控Tomcat的JVM运行情况详解

WIN:win7、jdk1.6.0 Server:linux、jdk1.6.0_03、tomcat6 主要从下面三个方面描述JVM内存监控流程: ◆jmap(MemoryMap)JVM内存对象打...
  • yx511500623
  • yx511500623
  • 2014年05月20日 15:01
  • 781

JVM 图形化监控工具

前篇文章已经介绍了一些JDK 中自带的监控工具,但是这些工具都是基于文本界面的,无法很直观的看出程序运行的波动情况,这节就介绍一些图形化的监控工具供大家更简单容易的监控使用。         首先说几...
  • kl28978113
  • kl28978113
  • 2016年11月09日 10:52
  • 2846

监控Linux环境下JVM应用内存的两种方法

性能测试监控中,监控Linux环境下应用内存方法如下: ------------------------------------------------------------------------...
  • bingqinshuiyin
  • bingqinshuiyin
  • 2016年11月08日 22:21
  • 4020

监控运行中jar包的jvm信息

开启jar包 运行端口 修改java -jar命令  加入如下命令参数(端口可以任意,但不要与其他应用端口冲突) -Dcom.sun.management.jmxremote.port=8996 -...
  • yl3395017
  • yl3395017
  • 2017年07月13日 08:48
  • 467

JAVA程序员养成计划之JVM学习笔记(3)-JVM性能监控

本文对JVM的性能监控方法做整理。 持续更新中… …1. JDK命令行工具1.1. jps:虚拟机进程状况工具 JVM Process Status Tool, 显示系统内所有的HotSpot虚拟机...
  • tmeteorj
  • tmeteorj
  • 2016年04月25日 11:08
  • 8105

JVM 运行时内存使用情况监控

java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是由类加载器一步步解析, 执行与生成与内存区域中的; 并且jvm有自己的垃圾回收器对内存区域管理, 回收; 但是我们已经可以通过一些工具...
  • HinstenyHisoka
  • HinstenyHisoka
  • 2017年01月10日 10:53
  • 7187

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让...
  • wisgood
  • wisgood
  • 2014年05月08日 23:25
  • 46636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM架构(018)_如何监控jvm的运行情况
举报原因:
原因补充:

(最多只允许输入30个字)