Linux下jmap命令查看內存使用


Linux下jmap命令查看內存使用

jmap -heap 1234
(1234為進程號)

jmap是JDK自帶的一個工具,非常小巧方便,其支持參數如下:

 -heap       
打印heap空間的概要,這里可以粗略的檢驗heap空間的使用情況。
例:
jmap -heap 12345
輸出:
Attaching to process ID 2657, please wait...
Debugger attached successfully.
Client compiler detected.
JVM version is 1.5.0_16-b02
 
using thread-local object allocation.
Mark Sweep Compact GC
 
Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 67108864 (64.0MB)
   NewSize          = 655360 (0.625MB)
   MaxNewSize       = 4294901760 (4095.9375MB)
   OldSize          = 1441792 (1.375MB)
   NewRatio         = 12
   SurvivorRatio    = 8
   PermSize         = 8388608 (8.0MB)
   MaxPermSize      = 67108864 (64.0MB)
 
Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 4521984 (4.3125MB)
   used     = 1510200 (1.4402389526367188MB)
   free     = 3011784 (2.8722610473632812MB)
   33.39684527853261% used
Eden Space:
   capacity = 4063232 (3.875MB)
   used     = 1495992 (1.4266891479492188MB)
   free     = 2567240 (2.4483108520507812MB)
   36.81778446320565% used
From Space:
   capacity = 458752 (0.4375MB)
   used     = 14208 (0.0135498046875MB)
   free     = 444544 (0.4239501953125MB)
   3.0970982142857144% used
To Space:
   capacity = 458752 (0.4375MB)
   used     = 0 (0.0MB)
   free     = 458752 (0.4375MB)
   0.0% used
tenured generation:
   capacity = 59342848 (56.59375MB)
   used     = 36321192 (34.638587951660156MB)
   free     = 23021656 (21.955162048339844MB)
   61.20567721994064% used
Perm Generation:
   capacity = 11796480 (11.25MB)
   used     = 11712040 (11.169471740722656MB)
   free     = 84440 (0.08052825927734375MB)
   99.28419325086806% used

  以上的輸出很簡單,第四行起開始輸出此進程我們的JAVA使用的環境。Heap Configuration,指在我們啟動時設置的一些JVM參數。像最大使用內存大小,年老代,年青代,持久代大小等。有這個可以很簡單的查看本進程的 內存使用情況。也許進程占用的總內存比較多,但我們在這里可以看到真正用到的並沒有多少,很多都是"Free"。內存使用的堆積大多在老年代,內存池露始 於此,所以要格外關心“tenured generation”。


-heap:format=b      
產生一個HeapDump文件,此為生成heapdump文件的重要參數。
例:jmap -heap:format=b 2657
會產生一個heap.bin的heapdump文件。
需要注意的是,此生成heapdump的參數為JDK1.5,在1.6中的格式為:
jmap -dump:live,format=b,file=xxx 2657
這里更加強大一些,可以指定是存活的對象,還有生成heapdump的文件名。

-histo
這里會生成一個類的統計報表,此表簡單無比,如顯示什么類有多少個實例,共占了多少字節等,如下:

例:jmap -histo 1234


Size    Count   Class description
-------------------------------------------------------
8394352 105     long[]
8293192 57202   char[]
7834776 14157   byte[]
6713592 53743   * ConstMethodKlass
4194320 1       com.xjawa.cms5server.Kontent[]
4055072 12319   int[]
3291104 85082   * SymbolKlass
3016040 53743   * MethodKlass
2774936 4253    * ConstantPoolKlass
1871480 4253    * InstanceKlassKlass
1811808 3990    * ConstantPoolCacheKlass
1488672 62028   java.lang.String
1203280 13258   java.lang.Object[]

 


免責聲明!

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



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