关于内存存在泄漏情况

系统WEB应用主机内部提供F5对外访问,但主机有运行几天就有内存无法再被回收情况,有的运行几天又都是正常的,但总有1台或两台运行时间一长就会出现这种情况,从java VisualVM反应的情况就是,见附件1.jpg,改图当前是正常的,有问题时就是OLD区被占满,GC回收时间间隔短,执行时间长。
系统配置:
4C、8G,suse10
JVM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_16-b02, mixed mode)
Java: version 1.5.0_16-b02, vendor Sun Microsystems Inc.
Java Home 目录: /home/jdk1.5.0_16/jre

启动参数配置:
-XX:+UseParallelGC
-XX:ParallelGCThreads=8
-XX:NewRatio=16
-XX:+UseAdaptiveSizePolicy
-Xms4096m
-Xmx4096m
-Xss128k
-XX:PermSize=128m
-XX:MaxPermSize=384m
-Djava.net.preferIPv4Stack=true
-Xmn2048m
-XX:+HeapDumpOnOutOfMemoryError

使用jmap输出文本对象(抓了3台)
1、old区满的情况:
Size Count Class description
-------------------------------------------------------
622511200 3796153 java.util.HashMap$Entry[]
311665280 2239754 java.lang.Object[]
297596064 4406135 char[]
287171952 5982749 java.util.HashMap$Entry
242525056 3789454 java.util.HashMap
184684240 4617106 java.lang.String
114521112 1590571 org.codehaus.xfire.service.MessagePartInfo
113174408 71462 int[]
103872760 2596819 java.util.LinkedList$Entry
92854880 2321372 javax.xml.namespace.QName
77773680 1944342 java.util.ArrayList
55739896 48712 byte[]
48848800 288459 * ConstMethodKlass
36148200 903705 java.util.LinkedList
33771512 27024 * ConstantPoolKlass
33403368 219759 java.lang.reflect.Method
30008520 288459 * MethodKlass
27954880 698872 javax.servlet.jsp.tagext.TagAttributeInfo
22426264 27024 * InstanceKlassKlass
21478776 402047 * SymbolKlass

2、old区快要满的:
Size Count Class description
-------------------------------------------------------
360480816 2230466 java.util.HashMap$Entry[]
273874664 3657052 char[]
196100776 1521239 java.lang.Object[]
165157056 3440772 java.util.HashMap$Entry
152779520 3819488 java.lang.String
142179968 2221562 java.util.HashMap
59637440 65040 byte[]
58752432 816006 org.codehaus.xfire.service.MessagePartInfo
54484760 1362119 java.util.LinkedList$Entry
49916576 293401 * ConstMethodKlass
47807760 1195194 javax.xml.namespace.QName
47486360 1187159 java.util.ArrayList
37886096 84612 int[]
35006536 28240 * ConstantPoolKlass
30522360 293401 * MethodKlass
29663480 741587 javax.servlet.jsp.tagext.TagAttributeInfo
29563848 194499 java.lang.reflect.Method
23126800 28240 * InstanceKlassKlass
22032144 411509 * SymbolKlass

3、当前运行正常的:
Size Count Class description
-------------------------------------------------------
242126328 2752744 char[]
115137520 2878438 java.lang.String
91923704 628401 java.util.HashMap$Entry[]
70395152 653622 java.lang.Object[]
66164000 59260 byte[]
50392144 295524 * ConstMethodKlass
39696704 620261 java.util.HashMap
36571872 761914 java.util.HashMap$Entry
35515992 28811 * ConstantPoolKlass
32641240 816031 javax.servlet.jsp.tagext.TagAttributeInfo
30743152 295524 * MethodKlass
23503800 28811 * InstanceKlassKlass
23299472 153286 java.lang.reflect.Method
22029816 410367 * SymbolKlass
20226304 24580 * ConstantPoolCacheKlass
14991640 374791 java.util.ArrayList
12994720 81217 org.apache.xmlbeans.impl.store.Xobj$AttrXobj
11511024 239813 java.lang.ref.WeakReference
10731744 17196 * MethodDataKlass
10178952 181767 java.lang.ref.SoftReference
9990376 113527 org.apache.jasper.compiler.Mark
9893120 77290 org.apache.jasper.compiler.Node$TemplateText
9639896 35253 short[]
9165160 129216 java.lang.String[]
8690496 362104 java.lang.Integer

对比分析,hashmap够多呀,请高手进来都发表发表吧,能找出问题来,有机会希望一起共事啊。
王珊数据库系统概论第5版视频教材 目录 隐藏 说明:本课程共包括1种电子书、84个高清视频(共68课时)、1种纸质书(赠品)。 网授课程 王珊《数据库系统概论》(第5版)网授精讲班【共68课时】 序号 名称 课时 1 第1章 绪 论(1) 00:32:25 2 第1章 绪 论(2) 00:17:03 3 第1章 绪 论(3) 00:50:19 4 第1章 绪 论(4) 00:20:37 5 第1章 绪 论(5) 00:24:47 6 第2章 关系数据库(1) 00:47:23 7 第2章 关系数据库(2) 00:14:48 8 第2章 关系 阅读详情

相关推荐

游戏开发实战:用UE4 Marschner模型打造次世代头发渲染(附Shader代码解析)

本文详细解析了如何在UE4中使用Marschner模型实现次世代头发渲染,包括Shader代码逐行解读与参数调优。通过对比传统Kajiya-Kay模型,展示了Marschner模型在物理精确性和视觉效果上的优势,并提供了性能优化与实战技巧,帮助技术美术师提升游戏角色渲染品质。

weixin_28223453的博客 210

记一次线上内存泄漏事故

1、服务不可用 项目迭代部署生产后,服务正常运行一段时间,突然接口全部异常,查看日志: OOM:GC overhead limit exceeded。JVM无法通过GC开辟更多的空间,这里粗略判断应该是内存泄漏导致。 2、Heap Dump与恢复服务 1、查看服务进程ID 2、heap dump: heap dump命令: jmap -dump:format=b,file=<file-path> <pid> jhat分析工具指令: j...

kevincang的博客 1543

IEC 60086-2 2021.pdf

IEC 60086-2 2021.pdf

java.lang.OutOfMemoryError: Java heap space 案例分析

一、背景 数据表导出excel时,数据量大于65w行,excel分为两个文件;测试导出100w数据出现内存溢出(java.lang.OutOfMemoryError: Java heap space),导致rcapi服务直接崩溃重启 二、目标 让数据表100w数据可以顺利导出 三、引发的思考 导出的逻辑挺复杂的,到底是哪块代码出现了问题,想着debug来排查,但是debug过程中,发现有很多地方的代码用时都挺长的,不好定位 堆空间不足,是不是有哪里的代码不够规范,导致该释放的对象,一直没有被释放掉

小鱼儿 2004

Java——怎么将10万条数据导出到excel?

JAVA实现将10万条数据导出到excel

YouLanDeFeng的博客 5020

记录一次内存溢出

线上内存溢出,步骤。

星云的博客 1499

POI直接加载Excel文件导致的线上OOM问题

POI读取Excel文件 java

weixin_42159686的博客 3396

java中是否存在内存泄漏内存泄漏出现在那些情况

java内存泄漏 内存泄漏:又称为“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导 致一直占据该内存单元。直到程序结束。(存储空间使用完成之后没有回收)即所谓内存泄漏java存在内存泄漏,出现的原因例如:长生命周期的对象持有短生命周期的引用,短生命周期的对 象结束引用,但是长生命周期的对象仍持有其引用导致存储空间不能回收。 常见的java内存泄漏包括以下几种:...

zmm0223的博客 362

JAVA中是否存在内存泄漏?什么情况下才是内存泄漏

一、什么是内存泄漏内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放造成系统的浪费,导致程序运行速度减慢甚至系统崩溃等严总后果。 内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更加难以检测。 二、JAVA中是否存在内存泄漏?什么情况下才是内存泄漏存在。因为JAVA语言中有着GC(垃圾回收器)机制的存在,一般情况下是很少发生内存泄漏。但是当长生命周期的...

weixin_42604175的博客 340

java中会存在内存泄漏吗?什么情况下才是内存泄漏

java中会存在内存泄漏吗?什么情况下才是内存泄漏内存泄漏是指不再被使用的对象或者变量一直被占据在内存中。 Java中有垃圾回收机制,它能够将不再被使用的对象,自动从内存中清除。即使这样,java中也存在内存泄漏情况,这是因为JVM回收机制是使用引用计数法和可达性分析算法来判断对象是否是不再使用的对象,本质都是判断一个对象是否还被引用。那么对于这种情况下,由于代码的实现不同就会出现很多种内...

qq_43138320的博客 442

java中是否存在内存泄漏?什么情况下才是内存泄漏

java中是否存在内存泄漏?什么情况下才是内存泄漏? 什么是Java中的内存泄露 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。 在C++中,内存泄漏...

qq_44941119的博客 941

java中是否存在内存泄漏?什么情况下才是内存泄漏?

简介 所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。 内存泄漏情况java 中的内存泄露的情况: 长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致 不能被回收,这就是 java内存泄露的发生场景。 public class Stack { private...

MengHen_0_0的博客 471

java中是否存在内存泄漏?什么情况下才是内存泄漏

当Float对象在第二行被创建时,什么时候能被垃圾回收站回收? 1.public Object m(){ 2. Object o = new Float(3.14F); //o----------> new Float(3.14f) 3. Object[] oa = new Object[1]; 4. oa[0] = o; // o----------&gt...

J______J的博客 606

java.lang.OutOfMemoryError: GC overhead limit exceeded

解决步骤: 1、取到weblogic生成的堆dump文件java_pid30245.hprof。 2、使用jdk自带的jvisualvm装入此文件进行分析。 发现org.apache.xmlbeans.impl.store.Xobj$AttrXobj的实例最多,并且对实例进行分析发现一个导入功能由于没有限制导入文件大小,平时没关系,业务人员本次导入93万条数据,文件大小13M时,导致...

u013068789的博客 1837

JAVA POI 学习

专为处理大数据量的场景设计,sxssfworkbook通过使用磁盘缓冲来减少内存占用,只在内存中保留一定数量的行数据(默认100行),适合处理大文件。一个openxml 文档就是一个Open Packaging Convention。sxssfworkbook主要用于写操作,不支持读取现有的excel文件。EXCEL本质上是xml文件的集合体,使用xml来存档和数据交换。它提供了对EXCEL文件的全面读写功能,支持复杂的格式和公式。这使它在处理大型EXCEL文件时可能会内存溢出。

m0_74674329的博客 273

SXSSFWorkbook & XSSFWorkbook 效率比拼

起因 最近正在接触POI中的SXSSFWorkbook,要说起为什么会接触这个货,那就要说最近的一个项目了 这个项目需要将10w多条数据写入Excel,但是整个逻辑执行过程一直伴随着OOM 经过 于是我用Java VisuaalVM工具进行了一番查证,并在OOM的时候获取了dump文件,打开发现我了个擦,里面有两个货占据了大量的空间: 1、org.apache.xmlbeans.impl...

LJHSkyWalker的博客 3万+

记生产OOM的故障分析

JVMJava平台的一部分,负责将Java字节码转换为机器指令并在不同的操作系统上执行。它屏蔽了底层硬件和操作系统的差异,使得“一次编写,到处运行”的理念得以实现。内存溢出的分析需要用到jmap,jhat命令。

coding 1024 1230

java xml内存泄漏,Java Apache-poi,内存泄漏与excel文件

I need to read (15000) excel files for my thesis. I'm using apache poi to open and later to analyze them but after around 5000 files I'm getting the following exception and stacktrace:Exception in thr...

weixin_34042899的博客 746
上一篇: 有关通信造成系统崩溃问题
huhanfu
博客等级 码龄20年 0粉丝 8原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值