JavaDump介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaDump分析 Java Dump概述 Dump,即“转储”。Java Dump可以保留Java虚拟机的瞬时快照。相比于传统的控制台输出,提供了更多的信息用于分析运行系统状态及错误。可弥补传统在Java平台上分析Bug手段的一些不足。 Java Dump分为两种: 线程Dump:纯文本格式。包含所有线程的运行状态、调用栈、锁信息等。 堆Dump:二进制格式,需要工具查看。包含了线程Dump的所有信息,此外还包括系统信息、Java虚拟机参数以及堆对象的状态。 Java Dump的分析,特别适合于生产环境下,并且针对非功能性的问题,主要为:多线程并发、内存泄漏。 制作Dump Java虚拟机发行版 不同Java虚拟机的Dump规范不完全相同,所以在制作Dump时,需要注意虚拟机发行版。 HotSpot VM:原Sun提供的官方Java虚拟机,支持Linux、Windows、Solaris平台。 OpenJDK:Sun JDK的开源版本,1.6后跟HotSpot差别不太大了。 JRockit:WebLogic使用的Java虚拟机,BEA开发。 IBM J9 VM:IBM开发的Java虚拟机,AIX平台上的唯一实现。 原理 注意事项 Java虚拟机发行版 使用相同的Java虚拟机发行版。即意味着使用SunJDK的工具,连接SunJRE的应用系统来制作Dump。 版本要求 目标虚拟机必须为1.6或以及的jdk。使用OOM参数制作堆Dump可使用1.5的jdk。(各虚拟机差异较大) 制作工具需要使用相同发行版的jdk,并且建议1.6以上。 堆Dump格式 相对纯文本的线程dump而言,堆Dump目前存在多种不同的格式。 HPROF,Sun 的Java虚拟机的堆Dump格式。 PHD,IBM Portable Heap Dump。IBM J9 VM生成的Dump格式。 使用虚拟机参数 内存溢出时自动堆Dump 为虚拟机增加启动参数: -XX:+HeapDumpOnOutOfMemoryError 则当虚拟机发生OutOfMemoryError时,自动生成堆Dump。 该参数对生产环境是否有用,可保存崩溃的现场,分析内存泄漏等。 使用图形工具 Java VisualVM Java VisualVM是从SunJDK_1.6开始自带的图形化工具,集成了jps、jmap、jstat等多个实用工具。在Windows环境下,推荐使用该工具制作线程Dump及堆Dump。此外,该工具还可做简单的内存分析。 Java VisualVM位于JDK的bin目录下,界面如下: 窗口左边为本机的Java进程,选择需要制作Dump的Java进程,点击右键选择“线程Dump”或“堆Dump”制作相应的Dump。 生成的Dump位于进程节点下,需要选择并另存到文件才能持久化保存。 Java VisualVM也支持从远程制作Dump,但由于涉及到较为复杂的权限配置操作,故强烈不推荐使用,在此不详述。建议从本地使用Java VisualVM来连接虚拟机。 Memory Analyzer (mat) Memory Analyzer是Eclipse基金会开发的Java堆Dump分析工具,也支持制作堆Dump。其界面如下: 点击File-Acquire Heap Dump可制作堆Dump。 首先需要选择在本机运行的目标Java进程。 通过Configure菜单,MAT还可以制作其他格式的堆Dump。 JProfiler 使用JProfiler连接上Java虚拟机后,使用Save HPROF snapshot来制作堆Dump。 示例: 使用命令行 以下介绍针对SunJDK——即HotSpotVM。 使用命令行制作Dump,建议严格按照以下四步骤。 检查Java版本 使用java –version命令。 windows平台示例: C:\java -version java version 1.6.0_24 Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode) Linux平台示例,注意bin目录中的Java版本。 [dev@localhost bin]$ java -version java version 1.6.0_22 OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-0.6.el6_2-x86_64) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) [d

文档评论(0)

4477769 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档