NativeMemoryTracking查看java内存信息

默认该功能是禁用的,因为会损失5-10%的性能

开启命令

-XX:NativeMemoryTracking=detail

打印命令

jcmd 45064 VM.native_memory summary scale=MB > NativeMemoryTracking.log

具体的日志信息

➜  ~
➜  ~ jcmd 45064 VM.native_memory summary scale=MB
45064:

Native Memory Tracking:

(Omitting categories weighting less than 1MB)

Total: reserved=5676MB, committed=654MB
       malloc: 58MB #363115
       mmap:   reserved=5618MB, committed=596MB

-                 Java Heap (reserved=4096MB, committed=200MB)
                            (mmap: reserved=4096MB, committed=200MB)

-                     Class (reserved=1025MB, committed=11MB)
                            (classes #16551)
                            (  instance classes #15574, array classes #977)
                            (malloc=1MB #44456)
                            (mmap: reserved=1024MB, committed=10MB)
                            (  Metadata:   )
                            (    reserved=64MB, committed=63MB)
                            (    used=62MB)
                            (    waste=1MB =0.90%)
                            (  Class space:)
                            (    reserved=1024MB, committed=10MB)
                            (    used=9MB)
                            (    waste=0MB =3.79%)

-                    Thread (reserved=258MB, committed=258MB)
                            (thread #129)
                            (stack: reserved=258MB, committed=258MB)

-                      Code (reserved=50MB, committed=19MB)
                            (malloc=2MB #10874)
                            (mmap: reserved=48MB, committed=17MB)

-                        GC (reserved=130MB, committed=54MB)
                            (malloc=17MB #9999)
                            (mmap: reserved=112MB, committed=36MB)

-                  Internal (reserved=1MB, committed=1MB)
                            (malloc=1MB #18262)

-                    Symbol (reserved=26MB, committed=26MB)
                            (malloc=22MB #218120)
                            (arena=4MB #1)

-    Native Memory Tracking (reserved=6MB, committed=6MB)
                            (tracking overhead=6MB)

-        Shared class space (reserved=16MB, committed=13MB, readonly=0MB)
                            (mmap: reserved=16MB, committed=13MB)

-           Synchronization (reserved=3MB, committed=3MB)
                            (malloc=3MB #50578)

-                 Metaspace (reserved=64MB, committed=63MB)
                            (mmap: reserved=64MB, committed=63MB)

堆外内存异常问题排查

https://www.cnblogs.com/duanxz/p/3738858.html

Native Memory Tracking 详解(1):基础介绍 | HeapDump性能社区

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
native memory tracking (本地内存跟踪) 是一种用于识别和定位Java应用程序中本地内存使用情况的工具。它可以帮助我们分析和优化应用程序的内存使用,特别是与本机代码相关的部分。 使用native memory tracking,可以按照以下步骤进行: 1. 启用native memory tracking:在JVM启动时,需要添加"-XX:NativeMemoryTracking=summary"标志来启用本地内存跟踪。此标志告诉JVM在应用程序运行时跟踪本地内存的分配和释放。 2. 运行应用程序:使用启用了本地内存跟踪的JVM运行应用程序,可以是命令行应用程序、Web应用程序或其他类型的Java应用程序。 3. 分析native memory tracking数据:当应用程序运行结束后,可以使用JVM提供的工具来分析本地内存跟踪数据。其中包括以下工具: - jcmd命令:运行jcmd命令并指定应用程序的进程ID,然后使用"VM.native_memory summary"子命令来查看本地内存跟踪的摘要信息。 - jmap命令:运行jmap命令并指定应用程序的进程ID,然后使用"-F"选项和"hprof"子命令来生成一个本地内存跟踪的快照。 - jconsole或Java Mission Control:可以使用这些工具对本地内存跟踪数据进行可视化分析。 4. 分析native memory tracking数据:通过分析本地内存跟踪数据,可以了解Java应用程序中本地内存的使用情况,包括本地内存的总量、分配和释放的数量,以及与本机代码相关的详细信息。可以识别潜在的内存泄漏、优化内存使用和调优本机代码等问题。 需要注意的是,native memory tracking对JVM的性能有一定的影响,因此在生产环境中使用时需要谨慎考虑,并根据具体情况选择合适的数据分析方法和工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值