我正在尝试在我的进程中诊断OOM异常。我正在使用Jmap并发现它没有报告JVM的完整内存使用情况。
这是jmap -histo:live
(截断)的输出:
num #instances #bytes class name
----------------------------------------------
1: 36143828 1156602496 java.util.concurrent.ConcurrentHashMap$Node
2: 36122540 1155921280 java.util.UUID
3: 195 268602800 [Ljava.util.concurrent.ConcurrentHashMap$Node;
4: 4207 11351968 [B
5: 38497 3231200 [C
6: 37708 904992 java.lang.String
加上以上数字我得到的内存使用量低于2GB,但我的grafana仪表板显示内存使用量接近16GB!
缺少的内存(几乎12GB)在哪里?我怎样才能获得详细信息?