系统的故障诊断是一个一步一步排除可能疑点最后找到问题所在的过程。今天和你一起学习JVM内存的故障排查方法。
Native Memory Tracking是什么
Native Memory Tracking (NMT) 是Java Hotspot VM的一个功能。用来跟踪Java 内存的使用情况,NMT可以追踪到堆内内存、code区域、通过unsafe.allocateMemory和DirectByteBuffer申请的内存,NMT不能跟踪C代码的申请的堆外内存的情况,因此有些时候需要配合操作系统级的内存检测工具使用。
Native Memory Tracking(NMT)的使用
-
-XX:NativeMemoryTracking=[off | summary | detail] -
# off: 默认关闭 -
# summary: 只统计各个分类的内存使用情况. -
# detail: Collect memory usage by individual call sites.
参数说明如下:
| 参数 | 说明 |
|---|---|
| off | 默认是off,关闭NMT |
| summary | 只收集汇总信息 |
| detail | 收集全部信息 |
特别提醒:开启NMT后,性能会有5%-10%的损耗,因此,在发现有内存问题后,才能使用该工具,没有发现问题的时候,尽量使其关闭。

本文介绍了如何使用Native Memory Tracking (NMT)进行JVM内存故障排查,包括NMT的概念、使用方法、jcmd查看报告的详细步骤,以及通过实例分析内存问题,帮助诊断和解决内存泄露问题。
最低0.47元/天 解锁文章

435

被折叠的 条评论
为什么被折叠?



