首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于内存储器存在泄漏情况

2012-07-23 
关于内存存在泄漏情况系统WEB应用主机内部提供F5对外访问,但主机有运行几天就有内存无法再被回收情况,有的

关于内存存在泄漏情况
系统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区满的情况:
SizeCountClass description
-------------------------------------------------------
6225112003796153java.util.HashMap$Entry[]
3116652802239754java.lang.Object[]
2975960644406135char[]
2871719525982749java.util.HashMap$Entry
2425250563789454java.util.HashMap
1846842404617106java.lang.String
1145211121590571org.codehaus.xfire.service.MessagePartInfo
11317440871462int[]
1038727602596819java.util.LinkedList$Entry
928548802321372javax.xml.namespace.QName
777736801944342java.util.ArrayList
5573989648712byte[]
48848800288459* ConstMethodKlass
36148200903705java.util.LinkedList
3377151227024* ConstantPoolKlass
33403368219759java.lang.reflect.Method
30008520288459* MethodKlass
27954880698872javax.servlet.jsp.tagext.TagAttributeInfo
2242626427024* InstanceKlassKlass
21478776402047* SymbolKlass

2、old区快要满的:
SizeCountClass description
-------------------------------------------------------
3604808162230466java.util.HashMap$Entry[]
2738746643657052char[]
1961007761521239java.lang.Object[]
1651570563440772java.util.HashMap$Entry
1527795203819488java.lang.String
1421799682221562java.util.HashMap
5963744065040byte[]
58752432816006org.codehaus.xfire.service.MessagePartInfo
544847601362119java.util.LinkedList$Entry
49916576293401* ConstMethodKlass
478077601195194javax.xml.namespace.QName
474863601187159java.util.ArrayList
3788609684612int[]
3500653628240* ConstantPoolKlass
30522360293401* MethodKlass
29663480741587javax.servlet.jsp.tagext.TagAttributeInfo
29563848194499java.lang.reflect.Method
2312680028240* InstanceKlassKlass
22032144411509* SymbolKlass

3、当前运行正常的:
SizeCountClass description
-------------------------------------------------------
2421263282752744char[]
1151375202878438java.lang.String
91923704628401java.util.HashMap$Entry[]
70395152653622java.lang.Object[]
6616400059260byte[]
50392144295524* ConstMethodKlass
39696704620261java.util.HashMap
36571872761914java.util.HashMap$Entry
3551599228811* ConstantPoolKlass
32641240816031javax.servlet.jsp.tagext.TagAttributeInfo
30743152295524* MethodKlass
2350380028811* InstanceKlassKlass
23299472153286java.lang.reflect.Method
22029816410367* SymbolKlass
2022630424580* ConstantPoolCacheKlass
14991640374791java.util.ArrayList
1299472081217org.apache.xmlbeans.impl.store.Xobj$AttrXobj
11511024239813java.lang.ref.WeakReference
1073174417196* MethodDataKlass
10178952181767java.lang.ref.SoftReference
9990376113527org.apache.jasper.compiler.Mark
989312077290org.apache.jasper.compiler.Node$TemplateText
963989635253short[]
9165160129216java.lang.String[]
8690496362104java.lang.Integer

对比分析,hashmap够多呀,请高手进来都发表发表吧,能找出问题来,有机会希望一起共事啊。 1 楼 lazierman 2011-06-30   是不是使用Hibernate ?容器是什么?
很可能是线程池导致内存泄漏 2 楼 huhanfu 2011-07-07   写的很清楚是tomcat部署的,没有其它容器,谢谢大家的关注,已经解决了。

热点排行