这个 Internal 区的内存很不正常,而且一直在涨,有什么办法定位到具体的代码吗
Native Memory Tracking: Total: reserved=8505MB +427MB, committed=5481MB +475MB - Java Heap (reserved=5554MB, committed=3743MB) (mmap: reserved=5554MB, committed=3743MB) - Class (reserved=1220MB +54MB, committed=221MB +63MB) (classes #34064 +8776) (malloc=6MB +2MB #83335 +35190) (mmap: reserved=1214MB +52MB, committed=215MB +60MB) - Thread (reserved=393MB +37MB, committed=393MB +37MB) (thread #390 +37) (stack: reserved=391MB +37MB, committed=391MB +37MB) (malloc=1MB #1970 +185) (arena=1MB #779 +74) - Code (reserved=265MB +8MB, committed=129MB +48MB) (malloc=21MB +8MB #30954 +11754) (mmap: reserved=244MB, committed=108MB +40MB) - GC (reserved=299MB +8MB, committed=231MB +8MB) (malloc=60MB +8MB #113255 +59858) (mmap: reserved=238MB, committed=171MB) - Compiler (reserved=1MB, committed=1MB) (malloc=1MB #1231 +295) - Internal (reserved=716MB +312MB, committed=716MB +312MB) (malloc=716MB +312MB #110419 +56157) - Symbol (reserved=36MB +5MB, committed=36MB +5MB) (malloc=32MB +4MB #352592 +48686) (arena=4MB #1) - Native Memory Tracking (reserved=11MB +3MB, committed=11MB +3MB) (tracking overhead=11MB +3MB) - Arena Chunk (reserved=0MB -1MB, committed=0MB -1MB) (malloc=0MB -1MB) - Unknown (reserved=11MB, committed=0MB) (mmap: reserved=11MB, committed=0MB)
此贴已结,由于代码不是我这边维护的(我们只负责整体的技术架构),在不熟悉它的代码并且代码量非常庞大的情况下没办法找到排查思路。 所以直接限制了直接内存
-XX:MaxDirectMemorySize=400m
在测试环境多次测试并观测后发现,Internal区最多用到这个400m的一半就不会再涨了
1 fiveStarLaoliang 2023-10-10 11:52:05 +08:00 MemoryAnalyzer 试下 |
2 4kingRAS 2023-10-10 14:31:55 +08:00 https://heapdump.cn/article/4813403 应该是直接内存有泄漏 |
![]() | 3 cmai OP @fiveStarLaoliang 堆内存是正常的,也就是 dump 文件是看不出啥的 |
![]() | 4 cmai OP @4kingRAS 是的,正常这块的大小可能只有几百 KB ,700M 是明显不正常的,这个文章里的这几个类我也找过了,代码里是没有用的,所以就卡在没法定位具体代码这里了 |
5 xyloading 2023-10-10 16:13:53 +08:00 直接内存里的 bytebuff 泄漏 |
![]() | 6 cloud107202 2023-10-10 18:50:08 +08:00 这里是缓缓上涨的,还是某个时刻一条竖线顶上去然后维持在高位? |
7 4kingRAS 2023-10-10 20:09:22 +08:00 @cmai cat /proc/$pid/smaps , 查看对应的地址,就是 0x00007fbc19f03123 那串,如果有信息那就是,如果没有信息,那就用 gdb 直接查看内存地址,但是要看懂需要一些功底。 |
8 squancher 2023-10-10 21:55:17 +08:00 via Android |
![]() | 9 scybhe 2023-10-10 22:25:47 +08:00 via Android jemalloc 看一下内存占用链 |