查看java进程的启动参数
得到以下结果
27876: -XX:CICompilerCount=3 -XX:InitialHeapSize=264241152 -XX:MaxHeapSize=4208984064 -XX:MaxNewSize=1402994688 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88080384 -XX:OldSize=176160768 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
|
打印堆概要信息
得到以下结果
Attaching to process ID 27876, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.171-b11
using thread-local object allocation. Parallel GC with 4 thread(s)
Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 4208984064 (4014.0MB) NewSize = 88080384 (84.0MB) MaxNewSize = 1402994688 (1338.0MB) OldSize = 176160768 (168.0MB) NewRatio = 2 SurvivorRatio = 8 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 0 (0.0MB)
Heap Usage: PS Young Generation Eden Space: capacity = 706215936 (673.5MB) used = 53656856 (51.171165466308594MB) free = 652559080 (622.3288345336914MB) 7.597797396630823% used From Space: capacity = 3670016 (3.5MB) used = 0 (0.0MB) free = 3670016 (3.5MB) 0.0% used To Space: capacity = 20447232 (19.5MB) used = 0 (0.0MB) free = 20447232 (19.5MB) 0.0% used PS Old Generation capacity = 282066944 (269.0MB) used = 40132768 (38.273590087890625MB) free = 241934176 (230.72640991210938MB) 14.228100404420307% used
26205 interned Strings occupying 3370072 bytes.
|
查看GC情况
参数说明:
字段 |
说明 |
gccause |
垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因。 |
5000 |
打印间隔 |
100 |
打印次数 |
得到如下结果:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC 0.00 0.00 7.60 14.23 97.49 96.72 16 0.312 4 0.636 0.948 Heap Dump Initiated GC No GC 0.00 0.00 7.60 14.23 97.49 96.72 16 0.312 4 0.636 0.948 Heap Dump Initiated GC No GC 0.00 0.00 7.60 14.23 97.49 96.72 16 0.312 4 0.636 0.948 Heap Dump Initiated GC No GC 0.00 0.00 7.60 14.23 97.49 96.72 16 0.312 4 0.636 0.948 Heap Dump Initiated GC No GC
|
获取堆信息
得到一个test.hprof文件,用MAT打开就可以看到堆信息
查看线程信息
参数说明:
字段 |
说明 |
F |
当正常输出请求不被响应时,强制输出线程堆栈 |
l |
除堆栈外,显示关于锁的附加信息 |
m |
如果调用到本地方法的话,可以显示C/C++的堆栈 |
查看非堆内存情况
需要在启动时加参数-XX:NativeMemoryTracking=summary -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics
注意该参数会导致一定的性能损耗,生产环境不建议使用
java -XX:NativeMemoryTracking=summary -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics -jar app.jar
|
查看非堆内存
jcmd 2826 VM.native_memory summary scale=MB
|