I have a Java App and we are running into heap issues. We feel there could be a memory leak as heap keeps growing over time. Here is how the histogram looks like.
1: 3025303 439665320 [C
2: 904292 310612216 [B
3: 385084 244774776 [I
4: 7384953 177238872 java.util.concurrent.ConcurrentSkipListMap$Node
5: 3953963 94895112 java.lang.Double
6: 1068745 70512552 [Ljava.lang.Object;
7: 559816 53742336 java.lang.management.ThreadInfo
8: 1526344 36632256 java.lang.String
9: 883927 21214248 java.util.ArrayList
10: 196823 16137520 [Lio.netty.util.Recycler$DefaultHandle;
11: 540532 13139904 [Ljava.lang.String;
12: 68479 12439480 [J
13: 501950 12046800 java.util.concurrent.ConcurrentSkipListMap$Index
14: 282440 11297600 java.util.LinkedHashMap$Entry
15: 122865 10958248 [Ljava.util.HashMap$Node;
16: 256514 10260560 com.twilio.platform.metrics.DataDogClient$DataDogMetric
17: 402976 9671424 java.util.LinkedList$Node
18: 135258 7574448 java.util.LinkedHashMap
19: 168800 6752000 org.jboss.netty.handler.codec.http.HttpHeaders$HeaderEntry
20: 201387 6444384 com.codahale.metrics.WeightedSnapshot$WeightedSample
21: 22797 6401952 [D
22: 196415 6285280 io.netty.util.Recycler$WeakOrderQueue$Link
23: 8064 5419008 io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue
24: 202768 4866432 java.lang.management.LockInfo
We use codahale metrics all over the code, com.codahale.metrics.WeightedSnapshot$WeightedSample
and java.util.concurrent.ConcurrentSkipListMap$Node
seems to be created by Reservoir implementation ExponentiallyDecayingReservoir
.
I am a newbie to heap analysis and memory leak issues. Can someone help?