JVM參數(shù)NativeMemoryTracking的使用
實際開發(fā)場景中應(yīng)該有發(fā)現(xiàn)Java應(yīng)用程序會消耗比設(shè)置-Xms和-Xmx更多的內(nèi)存,究其原因其實是因為JVM中除了大家熟知的堆內(nèi)存外,還有所謂的非堆內(nèi)存(Non-Heap Memory),詳細來看,非堆內(nèi)存包括方法區(qū)和Java虛擬機內(nèi)部做處理或優(yōu)化所需的內(nèi)存。
從圖上可以看到JVM內(nèi)存部分,除了堆內(nèi)存外還有方法區(qū),包括線程棧,常量池,方法和構(gòu)造函數(shù)代碼等。方法區(qū)在邏輯上是堆的一部分,但在HotSpot中是堆外存儲的,不同虛擬機可能實現(xiàn)有所不同。

Native Memory Tracking (NMT)
NMT,全稱為Native Memory Tracking,是Java 8u40版本引入的一項功能,用于跟蹤JVM本身在本地內(nèi)存中的內(nèi)存使用情況。我們可以使用 NMT 來追蹤了解 JVM 的內(nèi)存使用詳情(即上圖中的 JVM Memory 部分),幫助我們排查內(nèi)存增長與內(nèi)存泄漏相關(guān)的問題。
Native Memory Tracking 主要是用來通過在 JVM 向系統(tǒng)申請內(nèi)存的時候進行埋點實現(xiàn)的。
Native Memory Tracking 默認是不開啟的,并且無法動態(tài)開啟(因為這是埋點采集統(tǒng)計的,如果可以動態(tài)開啟那么沒開啟的時候的內(nèi)存分配沒有記錄無法知曉,所以無法動態(tài)開啟),目前只能通過在啟動 JVM 的時候通過啟動參數(shù)開啟。
NativeMemoryTracking參數(shù)使用
回到本文要說的 NativeMemoryTracking參數(shù),這個參數(shù)用于開啟和配置NMT的。要開啟配置和在需要時進行查看,需要配合jcmd的命令來實現(xiàn)。
配置啟動NMT參數(shù)
通過設(shè)置 JVM 啟動參數(shù)來開啟:-XX:NativeMemoryTracking=[off | summary | detail]
關(guān)于參數(shù)選項的解釋如下
| off | 不跟蹤 JVM 本地內(nèi)存使用情況。如果不指定 -XX:NativeMemoryTracking 選項則默認為off。 |
| summary | 僅跟蹤 JVM 子系統(tǒng)(如:Java heap、class、code、thread等)的內(nèi)存使用情況。 |
| detail | 除了通過 JVM 子系統(tǒng)跟蹤內(nèi)存使用情況外,還可以通過單獨的 CallSite、單獨的虛擬內(nèi)存區(qū)域及其提交區(qū)域來跟蹤內(nèi)存使用情況。 |
使用 jcmd <pid> VM.native_memory 查看
開啟之后,我們可以通過 jcmd 命令去查看 Native Memory Tracking 的信息,即
jcmd <pid> VM.native_memory
到此這篇關(guān)于JVM參數(shù)NativeMemoryTracking的使用的文章就介紹到這了,更多相關(guān)JVM NativeMemoryTracking內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MybatisPlus3.5.5與pagehelper?starter2.1.0沖突的問題解決
在使用MybatisPlus?3.5.5與PageHelper?Starter?2.1.0時,由于引用了不同版本的jsqlparser庫(4.6與4.7),會導(dǎo)致運行時錯誤,解決方案涉及確認依賴版本,本文就來介紹一下,感興趣的同學可以下載學習2024-10-10
maven利用tomcat插件部署遠程Linux服務(wù)器的步驟詳解
Maven已經(jīng)是Java的項目管理常用方式,下面這篇文章主要給大家介紹了關(guān)于maven利用tomcat插件部署遠程Linux服務(wù)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-11-11
微信小程序微信登錄的實現(xiàn)方法詳解(JAVA后臺)
通常我們在登錄微信小程序的時候都是通過授權(quán)登錄,下面這篇文章主要給大家介紹了關(guān)于微信小程序微信登錄的實現(xiàn)方法,文中通過實例代碼介紹的介紹的非常詳細,需要的朋友可以參考下2022-07-07

