【发布时间】:2018-09-28 08:28:20
【问题描述】:
我使用zabbix来监控jvm的空闲内存空间。他的空间不断缩小。这可能是什么原因造成的?我怀疑这是内存溢出。有什么办法可以检查出来吗?有人可以帮我吗?
更新
我重启jvm后,执行了jmap -histo:live这个命令。这里初始化有问题吗?
num #instances #bytes class name
----------------------------------------------
1: 192100 28118472 [C
2: 10757 10132704 [B
3: 101676 8947488 java.lang.reflect.Method
4: 165148 5284736 java.util.concurrent.ConcurrentHashMap$Node
5: 187677 4504248 java.lang.String
6: 19509 3519904 [I
7: 62802 3014496 org.aspectj.weaver.reflect.ShadowMatchImpl
8: 57683 2307320 java.util.LinkedHashMap$Entry
9: 18410 2044672 java.lang.Class
10: 40274 2016656 [Ljava.lang.Object;
11: 62801 2009632 org.aspectj.weaver.patterns.ExposedState
12: 59849 1915168 java.lang.ref.WeakReference
13: 1342 1774328 [Ljava.util.concurrent.ConcurrentHashMap$Node;
14: 22572 1753560 [Ljava.util.HashMap$Node;
15: 920 1576512 [Ljava.nio.ByteBuffer;
16: 47884 1532288 java.util.HashMap$Node
17: 26167 1465352 java.util.LinkedHashMap
18: 10874 1391872 org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl
19: 49720 1085320 [Ljava.lang.Class;
20: 45193 1084632 java.util.ArrayList
21: 13421 966312 java.lang.reflect.Field
22: 54885 878160 java.lang.Object
23: 16797 806256 java.util.HashMap
24: 19297 771880 java.lang.ref.SoftReference
25: 23315 559560 java.beans.MethodRef
26: 17695 530192 [Ljava.lang.String;
27: 6508 520640 java.lang.reflect.Constructor
28: 8305 465080 java.beans.MethodDescriptor
29: 23607 459008 [Lorg.aspectj.weaver.ResolvedType;
30: 17430 418320 org.springframework.core.MethodClassKey
【问题讨论】:
-
内存泄漏。进行堆转储并检查是什么占用了您的内存。
-
09-25 10:00 的峰值表明这是垃圾收集发生的时间。如果您查看更大的周期,您会看到锯齿图案吗?如果是这样,那可能只是正常的垃圾收集。
-
如果您是新手,请使用诸如 Memory Analyzer Tool (MAT) for Eclipse 之类的工具来分析在内存不足后进行的堆转储。
-
@Thomas 对不起。这个我错过了,就是重启了jvm。