关于内存存在泄漏情况

系统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够多呀,请高手进来都发表发表吧,能找出问题来,有机会希望一起共事啊。

猜你喜欢

转载自huhanfu.iteye.com/blog/1098252