zoukankan      html  css  js  c++  java
  • JVM内存初步学习

    JVM内存初步学习

     

    最近在学习容器内的JVM运行, 简单总结了下学习结果, 但是感觉还是分不清楚很多地方:

    同事帮忙进行了 native memory的监控, 主要信息简要如下:

    jvm刚运行起来时的信息为:

    我这边容器运行时, 使用的参数是 4c4g 

    jvm 启动的参数为:

     -Xmx2560m -Xms2560m -XX:MetaspaceSize=512m

    根据下面的监控结果 

    但是明显看到 reserved的内存是 4.7g 超过了 堆区和元数据区的总和.

    也看到了 committed的内存大小是 3.5g 左右. 

    内存分类信息为:

    堆区 2.5g 左右就是 直接分配的大小了, 齐总应该包含 Class的信息是 1.3g左右, 其他空间应该是暂时的空闲区域. 

    线程池  200m JIT编译缓存代码 280m  垃圾回收线程 100m  我理解的 symbol 应该就是文件对象的缓存(不一定正确)

    可以看到内存的需求种类还是非常繁多的. 

    Native Memory Tracking:
    
     
    
    Total: reserved=4703901KB, committed=3595737KB
    
    -                 Java Heap (reserved=2621440KB, committed=2621440KB)
    
                                (mmap: reserved=2621440KB, committed=2621440KB) 
    
     
    
    -                     Class (reserved=1294166KB, committed=277974KB)
    
                                (classes #44537)
    
                                (malloc=12118KB #109287) 
    
                                (mmap: reserved=1282048KB, committed=265856KB) 
    
     
    
    -                    Thread (reserved=189995KB, committed=189995KB)
    
                                (thread #185)
    
                                (stack: reserved=189112KB, committed=189112KB)
    
                                (malloc=603KB #926) 
    
                                (arena=280KB #365)
    
     
    
    -                      Code (reserved=282656KB, committed=190684KB)
    
                                (malloc=33056KB #43651) 
    
                                (mmap: reserved=249600KB, committed=157628KB) 
    
     
    
    -                        GC (reserved=101602KB, committed=101602KB)
    
                                (malloc=5822KB #1753) 
    
                                (mmap: reserved=95780KB, committed=95780KB) 
    
     
    
    -                  Compiler (reserved=625KB, committed=625KB)
    
                                (malloc=494KB #5497) 
    
                                (arena=131KB #6)
    
     
    
    -                  Internal (reserved=151177KB, committed=151177KB)
    
                                (malloc=151145KB #56630) 
    
                                (mmap: reserved=32KB, committed=32KB) 
    
     
    
    -                    Symbol (reserved=50252KB, committed=50252KB)
    
                                (malloc=47751KB #509336) 
    
                                (arena=2501KB #1)
    
     
    
    -    Native Memory Tracking (reserved=11411KB, committed=11411KB)
    
                                (malloc=36KB #426) 
    
                                (tracking overhead=11375KB)
    
     
    
    -               Arena Chunk (reserved=576KB, committed=576KB)
    
                                (malloc=576KB) 

    运行一晚上后的信息为:

    能够看到 一晚上多了200m的内存 commited 数量, 并且有持续增加的区趋势

    堆区因为有限制, 所以不会有大的变化, 但是可以看到 class的数量就是变大了. 多了100m

    栈区域基本不变, 还是200个左右. 

    jit 代码缓存增长了大约10m

    其他内存变化不是特别大. 

    但是感觉内存还是存在上涨的区域 容器内运行时还是需要控制各个区域内存的大小,避免出现超过container的限制而崩溃. 

    Total: reserved=4775691KB, committed=3711687KB
    
    -                 Java Heap (reserved=2621440KB, committed=2621440KB)
    
                                (mmap: reserved=2621440KB, committed=2621440KB) 
    
     
    
    -                     Class (reserved=1336975KB, committed=327439KB)
    
                                (classes #52046)
    
                                (malloc=13967KB #137324) 
    
                                (mmap: reserved=1323008KB, committed=313472KB) 
    
     
    
    -                    Thread (reserved=204481KB, committed=204481KB)
    
                                (thread #199)
    
                                (stack: reserved=203504KB, committed=203504KB)
    
                                (malloc=649KB #996) 
    
                                (arena=328KB #393)
    
     
    
    -                      Code (reserved=290336KB, committed=235868KB)
    
                                (malloc=40736KB #56418) 
    
                                (mmap: reserved=249600KB, committed=195132KB) 
    
     
    
    -                        GC (reserved=101611KB, committed=101611KB)
    
                                (malloc=5831KB #2046) 
    
                                (mmap: reserved=95780KB, committed=95780KB) 
    
     
    
    -                  Compiler (reserved=841KB, committed=841KB)
    
                                (malloc=710KB #7054) 
    
                                (arena=131KB #6)
    
     
    
    -                  Internal (reserved=153165KB, committed=153165KB)
    
                                (malloc=153133KB #66436) 
    
                                (mmap: reserved=32KB, committed=32KB) 
    
     
    
    -                    Symbol (reserved=53852KB, committed=53852KB)
    
                                (malloc=51319KB #545043) 
    
                                (arena=2533KB #1)
    
     
    
    -    Native Memory Tracking (reserved=12795KB, committed=12795KB)
    
                                (malloc=41KB #480) 
    
                                (tracking overhead=12755KB)
    
     
    
    -               Arena Chunk (reserved=193KB, committed=193KB)
    
                                (malloc=193KB) 
  • 相关阅读:
    web api中允许跨域访问
    HTTP Error 500.19
    使用SQL语句时应该注意的一些问题
    关于EsayUI中datagrid重复提交后台查询数据的问题
    EF6中使用事务的方法
    jquery中常用的方法和注意点
    在EF中正确的使用事务
    css解决移动端1px边框问题
    判定 JS 数据类型的最佳解决方案
    将伪数组转化为真数组
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/14321033.html
Copyright © 2011-2022 走看看