JVM 調優 - jmap
阿新 • • 發佈:2018-12-01
Java命令學習系列(三)——Jmap
2015-05-16 分類:Java 閱讀(17065) 評論(9)阿里大牛珍藏架構資料,點選連結免費獲取
Jmap
jmap是JDK自帶的工具軟體,主要用於列印指定Java程序(或核心檔案、遠端除錯伺服器)的共享物件記憶體對映或堆記憶體細節。可以使用jmap生成Heap Dump。在Java命令學習系列(零)——常見命令及Java Dump介紹和Java命令學習系列(二)——Jstack中分別有關於Java Dump以及執行緒 Dump的介紹。 這篇文章主要介紹Java的堆Dump以及jamp命令
什麼是堆Dump
堆Dump是反應Java堆使用情況的記憶體映象,其中主要包括系統資訊、虛擬機器屬性、完整的執行緒Dump、所有類和物件的狀態等。 一般,在記憶體不足、GC異常等情況下,我們就會懷疑有記憶體洩露。這個時候我們就可以製作堆Dump來檢視具體情況。分析原因。
基礎知識
Java虛擬機器的記憶體組成以及堆記憶體介紹 Java GC工作原理 常見記憶體錯誤:
outOfMemoryError 年老代記憶體不足。 outOfMemoryError:PermGen Space 永久代記憶體不足。 outOfMemoryError:GC overhead limit exceed 垃圾回收時間佔用系統執行時間的98%或以上。
jmap
用法摘要
Usage: jmap [option] <pid> (to connect to running process) jmap [option] <executable <core> (to connect to a core file) jmap [option] [[email protected]]<remote server IP or hostname> (to connect to remote debug server) where <option> is one of: <none> to print same info as Solaris pmap -heap to print java heap summary -histo[:live] to print histogram of java object heap; if the "live" suboption is specified, only count live objects -permstat to print permanent generation statistics -finalizerinfo to print information on objects awaiting finalization -dump:<dump-options> to dump java heap in hprof binary format dump-options: live dump only live objects; if not specified, all objects in the heap are dumped. format=b binary format file