hprof 不大 泄露_HPROF –内存泄漏分析教程

hprof 不大 泄露

本文将为您提供有关如何通过生成和分析Sun HotSpot JVM HPROF堆转储文件来分析JVM内存泄漏问题的教程。

一个现实的案例研究将用于此目的:Weblogic 9.2内存泄漏影响Weblogic Admin服务器。

环境规格

  • Java EE服务器:Oracle Weblogic Server 9.2 MP1
  • 中间件操作系统:Solaris 10
  • Java虚拟机:Sun HotSpot 1.5.0_22
  • 平台类型:中间层

监控和故障排除工具

  • Quest Foglight(JVM和垃圾收集监视)
  • jmap(hprof /堆转储生成工具)
  • 通过IBM支持助手进行的Memory Analyzer 1.1(hprof堆转储分析)
  • 平台类型:中间层

步骤#1 – WLS 9.2管理服务器JVM监视和泄漏确认

Quest Foglight Java EE监视工具对于从Weblogic Admin服务器识别Java堆泄漏非常有用。 如下所示,Java Heap内存随着时间的推移而增长。

如果您没有为Weblogic环境使用任何监视工具,那么我建议您至少启用HotSpot VM的verbose:gc。 请访问有关此主题的Java 7 verbose:gc教程 ,以获取更多详细说明。

步骤#2 –从泄漏的JVM生成堆转储

发现JVM内存泄漏后,目标是使用Sun JDK jmap实用程序生成堆转储文件(二进制格式)。

**请注意,生成jmap堆转储将导致您的JVM无法响应,因此运行jmap实用程序之前 ,请确保没有更多的流量发送到受影响的/泄漏的JVM **

<JDK HOME>/bin/jmap -heap:format=b <Java VM PID>

此命令将生成泄漏的JVM的堆转储二进制文件(heap.bin)。 文件的大小和生成过程所花费的时间将取决于您的JVM大小和计算机规格/速度。

对于我们的案例研究,在大约1小时的时间里生成了约2 GB的二进制堆转储文件。

由于OutOfMemoryError并在JVM启动参数中添加-XX:+ HeapDumpOnOutOfMemoryError,也会自动生成Sun HotSpot 1.5 / 1.6 / 1.7堆转储文件。

步骤#3 –在Memory Analyzer工具中加载堆转储文件

现在是时候在Memory Analyzer工具中加载堆转储文件了。 加载过程将需要几分钟,具体取决于堆转储的大小和计算机的速度。

步骤#4 –分析您的堆转储

内存分析器为您提供许多功能,包括“泄漏可疑”报告。 对于此案例研究,以Java堆直方图为起点来分析泄漏的对象和源。

对于我们的案例研究,发现java.lang.String和char []数据是泄漏的对象。 现在的问题是泄漏的根源是什么,例如那些泄漏对象的引用。 只需右键单击泄漏的对象,然后选择>>列出对象>带有传入引用的引用

如您所见,发现javax.management.ObjectName对象是泄漏的String&char []数据的源。 Weblogic Admin服务器正在通过MBeans / JMX通信并从其受管服务器中提取统计信息,该MBeans / JMX为任何MBean对象类型创建javax.management.ObjectName。 现在的问题是,为什么Weblogic 9.2无法正确发布此类对象……

根本原因:Weblogic javax.management.ObjectName泄漏!

在我们进行堆转储分析之后,对Weblogic的已知问题进行了回顾,确实揭示了以下Weblogic 9.2错误:

  • Weblogic错误ID:CR327368
  • 说明:管理服务器上的javax.management.ObjectName对象的内存泄漏,用于在管理服务器上引起OutOfMemory错误。
  • 受影响的Weblogic版本:WLS 9.2
  • 固定在:WLS 10 MP1

http://download.oracle.com/docs/cd/E11035_01/wls100/issues/known_resolved.html
考虑到我们的堆转储分析,WLS版本和此已知问题描述的完美匹配,这一发现是非常确定的。

结论

我希望本教程和案例研究一起帮助您了解如何使用jmap和Memory Analyzer工具查明Java Heap泄漏的来源。

请不要犹豫,发表任何评论或问题。

我还提供了免费的Java EE咨询,因此请给我发送电子邮件 ,并向我提供您的堆转储文件的下载链接,以便我可以为您进行分析并在此Blog上创建一篇文章来描述您的问题,根本原因和解决方案。

参考: HPROF –来自我们的JCG合作伙伴 Pierre-Hugues Charbonneau的内存泄漏分析教程 ,位于Java EE支持模式和Java教程博客中。


翻译自: https://www.javacodegeeks.com/2012/04/hprof-memory-leak-analysis-tutorial.html

hprof 不大 泄露

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java枚举怎么编译不行的_java枚举类型

public classTestEnum {/*最普通的枚举*/public enumColorSelect {red, green, yellow, blue;}/*枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.*/public enumSeason {//枚举列表必须写在最前面&#xff0…

eclipse光标变成黑块变粗解决办法

就是按下了键盘的insert按键转载于:https://www.cnblogs.com/panxuejun/p/6170717.html

投资银行对Java进行的二十大核心面试问答

这是在金融领域&#xff08;主要是大型投资银行&#xff09;共享Java核心访谈问题和答案的新系列。 在JP Morgan&#xff0c;Morgan Stanley&#xff0c;Barclays或Goldman Sachs上会问许多这些Java面试问题。 银行主要从多线程 &#xff0c; 集合 &#xff0c;序列化&#xff…

java 支付重复问题_Airbnb支付系统如何在分布式环境下避免重复打款

原文链接&#xff1a;https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bbAirbnb一直在将其基础架构迁移到面向服务的体系结构(SOA)。 SOA具有许多优势&#xff0c;例如使开发人员能够专业化并具有更快迭代的能力。…

用注解方式写定时任务

spring里加上 </context:component-scan><!-- 任务自动扫描 --><task:annotation-driven/><!-- 扫描位置 --><context:annotation-config/> <context:component-scan base-package"com.xxx.xxx"/>然后在类上面添加注解 Compon…

myeclipse配置java8_MyEclipse 2017配置Tomcat8

MyEclipse 2017的配置其实跟MyEclipse 2015的比较一致&#xff0c;再往之前的就有出入了。不得不吐槽其卡&#xff0c;跟Eclipse不在一个量级上呀。。。一、配置转自&#xff1a;http://www.xuexila.com/diannao/diy/2788109.html工具/原料myeclipse 2017tomcat8 服务器方法/步…

moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–服务器端

moxy json介绍在之前的系列文章中&#xff0c;我介绍了如何利用EclipseLink JAXB&#xff08;MOXy&#xff09;创建RESTful数据访问服务。 在本文中&#xff0c;我将介绍在服务器端利用MOXy的新JSON绑定添加对基于JAXB映射的JSON消息的支持有多么容易。 MOXy作为您的JAX-RS JSO…

mysql教程清华课后答案_mysql学习之路_sql

查看数据库&#xff1a;Show databases;查看指定部分数据库&#xff1a;模糊查询Show databases like ‘patten’;--paatten是匹配模式%&#xff1a;表示是匹配模式_&#xff1a;表示匹配单个字符&#xff1b;查看数据库创建语句&#xff1a;Show create database 数据库名[库选…

那么您想做微服务吗? 请观看微服务以防万一

Bert Ertman在本次有关微服务的演示中提供了许多有效的观点。 您是否正在考虑在项目&#xff0c;团队或公司中遵循此路径&#xff1f; 请拿起咖啡&#xff0c;记事本&#xff08;如果您喜欢手写笔记&#xff09;并观看。 看到许多公司和团队确实很痛苦&#xff0c;精力浪费&…

MDX中Filter 与Exist的区别

获得一个集合&#xff0c;这个一般用来筛选出一个自定义的set&#xff0c;比如在中国的餐厅 该set返回所有MSDNteam下并且在Fact Thread度量上有记录的products 用Exists实现 select Exists( [Dim Queue].[Product - Queue].MEMBERS, [Dim Engineer].[Team - Engineer].[Team N…

java chsftp.get 追加_Java SFTP上传使用JSch,但如何覆盖当前文件?

我试图使用JSch将两个文件上传到具有SFTP的服务器.如果目录为空,则上传文件可以正常工作,但我想一遍又一遍地上传相同的文件(只需更改内部的id),但是我无法弄清楚如何做到这一点. JSch中有一些静态参数叫做OVERWRITE,但是我无法找到如何使用它.任何人都关心我如何添加这个设置&…

MySQL在Django框架下的基本操作(MySQL在Linux下配置)

注&#xff1a;本文已迁移至CSDN&#xff0c;后续的更新也会在CSDN。 http://blog.csdn.net/houchaoqun_xmu/article/details/53813633 http://blog.csdn.net/houchaoqun_xmu 【原】本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作&#xff0c;核心内容如下&#x…

Clean Sheet – Windows 10的人体工程学Eclipse主题

Clean Sheet是适用于Windows 10的符合人体工程学的Eclipse主题。它基于干净&#xff0c;低眩光的外观和感觉&#xff0c;旨在减轻视觉疲劳和眼睛疲劳。 它融合了均衡的颜色选择&#xff0c;可以突出谐波语法并注重可读性。 除自定义滚动条外&#xff0c;它还努力满足现代美学要…

php mysql插入的数据有引号_php – 由于’引号’的不同,数据没有插入到mysql数据库中...

您不需要在查询中封装表,除非它们有空格或者它们是保留字.INSERT INTO lms.test2 (trn) VALUES (17)// This makes no real sense to the db. It should be:INSERT INTO lms.test2 (trn) VALUES (17)如果列trn接受数字,它应该是&#xff1a;INSERT INTO lms.test2 (trn) VALUES…

CentOS上安装MyCat-MySQL

1、安装JDK&#xff0c;要求JDK7以上。 2、下载MyCat&#xff0c;地址。 3、解压Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz&#xff0c;到usr/local/Mycat目录下。 4、添加用户Mycat。 [rootlocalhost Desktop]# useradd Mycat [rootlocalhost Desktop]# passwd M…

Java中的Redis的思维导图_Redis思维导图

常见相关问题Redis 有哪些功能&#xff1f;数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列Redis 为什么是单线程的&#xff1f;因为 cpu 不是 Redis 的瓶颈&#xff0c;Redis 的瓶颈最有可能是机器内存或者网络带宽。既然单线程容易实现&#xff0c;而且 cpu 又…

在Java EE应用程序中实现自动重试

最初&#xff0c;我想将此博客称为“ 具有拦截器驱动的重试策略的灵活超时 ”&#xff0c;但后来我认为它太“繁重”。 该声明以及修改后的标题应该&#xff08;希望&#xff09;使您了解此帖子可能谈论的内容;-) 触发 这篇文章主要由我在较早的一篇文章中收到的评论/问题之一…

2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开

今天&#xff08;2016-12-17 10:20&#xff09;早晨从百度上检索到一篇新浪博客文章&#xff0c;点进去之后显示无法访问此网址&#xff0c;如下截图 去新浪博客主页看了看&#xff0c;主页是可以打开的 但是点进去任何一篇文章&#xff0c;都无法打开此页面 应该是新浪博客的服…

php版本7历史,php的版本发展历史(1995-2020)

PHP一直作为Web开发中的统治力量而存在&#xff0c;在WEB服务端开发领域&#xff0c;全球份额始终保持在78%以上。PHP快速&#xff0c;非常强大&#xff0c;生态好&#xff0c;而且免费&#xff0c;是一个为WEB而生的编程语言&#xff0c;自从诞生起PHP就被大多数开发者称为世界…

一周学会HTML----Day03常用标签(下)

form 标签 表单&#xff08;重要&#xff09; 表单用途 用于收集用户信息&#xff0c;提交给服务器 基本使用 (action,method,enctype) 要提交的表单必须放到form里 input select textarea 这三种标签可以提交数据 action&#xff1a;提交地址&#xff0c;应该是服务器的一个页…