V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cmai
V2EX  ›  程序员

jvm 内存泄漏问题

  •  
  •   cmai · 142 天前 · 1845 次点击
    这是一个创建于 142 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个 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)
    
    
    第 1 条附言  ·  141 天前
    补充一下 detail ,大概就是这两个东西

    [0x00007fbc19f03123] Unsafe_AllocateMemory+0xc3
    [0x00007fbc05cb36e8]
    (malloc=832MB #295)

    [0x00007fbc19f03123] Unsafe_AllocateMemory+0xc3
    [0x00007fbc04beaa94]
    (malloc=343MB #100)


    能知道里面的内容吗?
    第 2 条附言  ·  138 天前

    此贴已结,由于代码不是我这边维护的(我们只负责整体的技术架构),在不熟悉它的代码并且代码量非常庞大的情况下没办法找到排查思路。 所以直接限制了直接内存

    -XX:MaxDirectMemorySize=400m
    

    在测试环境多次测试并观测后发现,Internal区最多用到这个400m的一半就不会再涨了

    9 条回复    2023-10-10 22:25:47 +08:00
    fiveStarLaoliang
        1
    fiveStarLaoliang  
       142 天前
    MemoryAnalyzer 试下
    4kingRAS
        2
    4kingRAS  
       141 天前
    https://heapdump.cn/article/4813403 应该是直接内存有泄漏
    cmai
        3
    cmai  
    OP
       141 天前
    @fiveStarLaoliang 堆内存是正常的,也就是 dump 文件是看不出啥的
    cmai
        4
    cmai  
    OP
       141 天前
    @4kingRAS 是的,正常这块的大小可能只有几百 KB ,700M 是明显不正常的,这个文章里的这几个类我也找过了,代码里是没有用的,所以就卡在没法定位具体代码这里了
    xyloading
        5
    xyloading  
       141 天前
    直接内存里的 bytebuff 泄漏
    cloud107202
        6
    cloud107202  
       141 天前
    这里是缓缓上涨的,还是某个时刻一条竖线顶上去然后维持在高位?
    4kingRAS
        7
    4kingRAS  
       141 天前
    @cmai cat /proc/$pid/smaps , 查看对应的地址,就是 0x00007fbc19f03123 那串,如果有信息那就是,如果没有信息,那就用 gdb 直接查看内存地址,但是要看懂需要一些功底。
    squancher
        8
    squancher  
       141 天前 via Android
    scybhe
        9
    scybhe  
       141 天前 via Android
    jemalloc 看一下内存占用链
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3820 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.