jmap -heap pid
使用jmap -heap pid查看進程堆內存使用情況,包括使用的GC算法、堆配置參數和各代中堆內存使用情況.
測試輸出
如下爲使用Jmap -heap命令的輸出
Attaching to process ID 152, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.201-b09 //java版本號
using thread-local object allocation.
Parallel GC with 3 thread(s) //使用的垃圾回收算法
Heap Configuration: //java堆配置
MinHeapFreeRatio = 0 // 最小堆使用比例
MaxHeapFreeRatio = 100 //最大可用比例
MaxHeapSize = 6442450944 (6144.0MB)//最大堆空間大小
NewSize = 34603008 (33.0MB)// 新生代配置大小
MaxNewSize = 2147483648 (2048.0MB)//最大新生代大小
OldSize = 70254592 (67.0MB)//老年代大小
NewRatio = 2 //新生代比例
SurvivorRatio = 8 //新生代與survivor的比例
MetaspaceSize = 21807104 (20.796875MB)//元空間大小,替代1.8 以前的Permgen
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB//最大元空間大小, 調整元空間的大小需要Full GC,一般將MetaspaceSize MaxMetaspaceSize兩個值都設置爲256M,防止FGC
G1HeapRegionSize = 0 (0.0MB) //設置的 G1 區域的大小
Heap Usage://堆內存實際使用情況
PS Young Generation//新生代
Eden Space: //伊甸區
capacity = 1717567488 (1638.0MB)//容量
used = 34716456 (33.108192443847656MB)//使用
free = 1682851032 (1604.8918075561523MB)//空閒
2.0212571699540693% used
From Space: // survior1區
capacity = 29884416 (28.5MB)
used = 29440712 (28.07685089111328MB)
free = 443704 (0.42314910888671875MB)
98.515266284608% used
To Space:// survior2 區
capacity = 70778880 (67.5MB)
used = 0 (0.0MB)
free = 70778880 (67.5MB)
0.0% used
PS Old Generation // 永久代使用情況
capacity = 438829056 (418.5MB)
used = 325158176 (310.0950012207031MB)
free = 113670880 (108.40499877929688MB)
74.09677448523372% used
65969 interned Strings occupying 6849840 bytes.