jmap查看內存使用情況與生成heapdump


jmap
JVM Memory Map命令用於生成heap dump文件,如果不使用這個命令,還可以使用-XX:+HeapDumpOnOutOfMemoryError參數來讓虛擬機出現OOM的時候自動生成dump文件。 jmap不僅能生成dump文件,還可以查詢finalize執行隊列、Java堆和永久代的詳細信息,如當前使用率、當前使用的是哪種收集器等。
 

參數

option:選項參數,不可同時使用多個選項參數

pid:java進程id,命令ps -ef | grep java獲取

executable:產生核心dump的java可執行文件

core:需要打印配置信息的核心文件

remote-hostname-or-ip:遠程調試的主機名或ip

server-id:可選的唯一id,如果相同的遠程主機上運行了多台調試服務器,用此選項參數標識服務器

 

options參數

heap : 顯示Java堆詳細信息
histo : 顯示堆中對象的統計信息
permstat :Java堆內存的永久保存區域的類加載器的統計信息
finalizerinfo : 顯示在F-Queue隊列等待Finalizer線程執行finalizer方法的對象
dump : 生成堆轉儲快照
F : 當-dump沒有響應時,強制生成dump快照
 

示例

 

-dump

dump堆到文件,format指定輸出格式,live指明是活着的對象,file指定文件名

 

-heap

打印heap的概要信息,GC使用的算法,heap的配置及使用情況,可以用此來判斷內存目前的使用情況以及垃圾回收情況.

 

-finalizerinfo   

打印等待回收的對象信息

 

-histo

打印堆的對象統計,包括對象數、內存大小等等。jmap -histo:live 這個命令執行,JVM會先觸發gc,然后再統計信息

 

jmap -histo:live 11808 | grep StringBuffer 查詢類名包含StringBuffer的信息

jmap -histo:live 11808 | grep StringBuffer > histo.txt 保存信息到histo.txt文件

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM