`
louis1987
  • 浏览: 9707 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JVM内存监控、分析(转)

阅读更多
1.导出内存对象

jmap -dump:format=b,file=c:/filename.hprof pid

2.使用工具分析
下载MemoryAnalyzer,导入内存对象文件,进行分析

下面为转载

最近压力测试和调优Liferay portal,所以需要找到一种工具,可以比较好的监测VM工具。本来想使用商用工具,但偶然间发现SUN 的JDK中新添了几个工具,并且非常好用。秉承着有免费,不用商用的原则。开始使用新的JDK工具,以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装)

我一共找到以下五个工具:
jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

接下来是对这些工具的详细介绍:

从最简单的jstat工具开始:我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打)

接下来是jstat,我之所以这次调优Liferay portal是因为,liferay在默认的情况下,并发用户一多就会产生perm out of momery异常。虽然很开就解决了,但发现对VM内存使用量监控的重要性。通过google,很快的发现了jstat这个工具。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=String 3024可以将3024进程的内存heap输出出来到String文件里。

jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt  pid 如:查看2788的MaxPerm大小可以用  jinfo -flag MaxPermSize 2788。

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打 jconsole,选则进程就可以了

http://qinglangee.iteye.com/blog/794025

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/roland101/archive/2008/03/16/2188585.aspx
分享到:
评论

相关推荐

    idea插件JVM内存工具JProfiler11

    idea插件JVM内存工具JProfiler11,下载完,即可导入idea,可idea快捷打开使用。

    zabbix监控JAVA 进程 JVM数据统计分析告警监控

    zabbix自动发现JAVA进程,并进行自动添加监控JAVA 进程的JVM数据,统计分析告警监控。 支持多种中间件,tomcat、weblogic、微服务方式部署JAVA应用监控。 自带发现脚本和监控脚本,以及zabbix导入模板。

    JAVA JVM内存监控工具总结

    VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。 jinfo:...

    JVM内存—jstat分析

    jstat用户监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行统计

    JVM内存管理、调优与监控考据

    考据,即广泛收集资料,比较分析,去伪存真,总结精要的意思。 为什么要以“考据”的形式研究Java应用管理和调优(包括内存、线程等)并撰写这篇文章? 因为“Java应用管理和调优”这一主题不仅涉及理论也涉及实践...

    深入理解JVM内存结构及运行原理全套视频加资料.txt

    2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...

    JVM基础知识及分析工具

    一、Jdk组成 二、Jdk32与jdk64的差异 三、自动内存管理机制 四、内存泄露与内存溢出 五、垃圾回收算法 六、虚拟机性能监控工具

    JVM实战篇笔记.pdf

    JVM实战篇笔记,提供全方面的JVM 操作教程,定位JVM 内存溢出,堆栈使用情况,内存溢出分析,在线基于工具实时监控

    Mac版jvm性能调优工具+内存监控+系统性能分析+Java开发助手+三高性能分析必备+Jprofiler_12.0.4

    软件主要功能如下: (1)监控堆内存的占用情况和创建对象实例的数量,找出内存泄露的原因; (2)监控占用CPU较多的方法; (3)监控线程的阻塞和死亡; (4)监控GC的耗时;

    深入JVM内核 - 原理、诊断与优化

    介绍常用的JVM诊断和分析工具,并以死锁和OOM为例,展示这些工具的使用。 第八课 分析Java堆 MAT的使用案例 Jvisualvm介绍使用 介绍了Java堆的分析方法,以一个实例为基础,展示对堆的分析过程。 第九课 锁 ...

    JVM内存问题排查

    初步诊断思路考虑是不是这台机器上的某个服务把内存撑爆了,所以开始排查内存问题,使用jdk自带脚本,进行内存诊断分析。 1.查看所有Java应用占用的进程(linux常用的是ps -ef|grep java) jps -l 2.查看需要监控...

    JavaVisualVM可视化多线程监控分析工具v1.3.8官方安装版

    Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。功能包括内存分析、快照功能、转储功能...

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

    第56节可视化虚拟机工具-Jconsole内存监控00:07:09分钟 | 第57节可视化虚拟机工具-Jconsole线程监控00:12:18分钟 | 第58节死锁原理以及可视化虚拟机工具-Jconsole线程死锁监控00:10:38分钟 | 第59节VisualVM使用...

    Java生产环境下性能监控与调优详解视频教程

    Java生产环境下性能监控与调优详解视频教程 ... MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中,txt下载后获取网盘链接下载

    Java虚拟机监控方案.docx

     统计、分析之后的数据封装为用于被监控数据对象,向各种渠道的数据观察者发送监控数据的变更通知  定时保存jstat,jstack结果,以及其他有后续分析价值监控数据,使虚拟机的运行现场可以回放。  同时从多个远程...

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

    112 5.2.5 服务器JVM进程崩溃 / 113 5.3 实战:Eclipse运行速度调优 / 114 5.3.1 调优前的程序运行状态 / 114 5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117 5.3.3 编译时间和类加载时间的优化 / 122 5.3.4 ...

    JVM命令行性能监控工具

    1、在 java 的 bin 目录下,jdk 提供了很多使用的工具,下面学习一些监控和故障处理的工具。 名称 作用 jps JVM process status tool,显示指定系统内所有的 HotSpot 虚拟机进程 jstat JVM statistics ...

    Java生产环境下性能监控与调优详解.7z

    Java生产环境下性能监控与调优详解 本课程将为你讲解如何在生产环境下对Java应用做... 读懂JVM字节码指令,分析源码背后原理,提升应对线上突发状况的能力 慕课网地址:https://coding.imooc.com/class/241.html

    WebLogic_精简培训内容.ppt

    weblogic精简培训内容 ...Weblogic Server系统监控(Thread, JVM 内存,Througout,Queue,WorkManger,WorkLoad,应用负载) Weblogic Server系统定期健康检查 Weblogic的性能调优 问题分析和故障排除案例

    Cloud_Foundry中Java应用集合类内存泄漏检测_叶瑞浩.caj

    中Java应用内存泄漏的检测,通过监控集合类对象的内存消耗和集合内元素的 使用情况,得出对象内存泄漏的可能性大小,量化对象内存泄漏的风险。检测 系统首先收集垃圾回收事件后的应用内存数据,确定进行...

Global site tag (gtag.js) - Google Analytics