JVM小知识:linux 命令查看jvm堆内存信息
top -Hp 进程ID, 查看进程下各线程的 cpu等占用情况
查看当前java进程的pid
pgrep -lf java
在这里插入图片描述
2.查看java堆的详细信息
jmap -heap PID
Heap Configuration: #堆配置情况
MinHeapFreeRatio = 40 #堆最小使用比例
MaxHeapFreeRatio = 70 #堆最大使用比例
MaxHeapSize = 8589934592 (8192.0MB) #堆最大空间
NewSize = 1363144 (1.2999954223632812MB) #新生代初始化大小
MaxNewSize = 5152702464 (4914.0MB) #新生代可使用最大容量大小
OldSize = 5452592 (5.1999969482421875MB) #老生代大小
NewRatio = 2 #新生代比例
SurvivorRatio = 8 #新生代与suvivor的占比
MetaspaceSize = 21807104 (20.796875MB) #元数据空间初始大小
CompressedClassSpaceSize = 1073741824 (1024.0MB) #类指针压缩空间大小, 默认为1G
MaxMetaspaceSize = 17592186044415 MB #元数据空间的最大值, 超过此值就会触发 GC溢出( JVM会动态地改变此值)
G1HeapRegionSize = 2097152 (2.0MB) #区块的大小
Heap Usage:
G1 Heap:
regions = 4096 # G1区块初始化大小
capacity = 8589934592 (8192.0MB) #G1区块最大可使用大小
used = 1557972768 (1485.7986145019531MB) #G1区块已使用内存
free = 7031961824 (6706.201385498047MB) #G1区块空闲内存
18.137190118432045% used #G1区块使用比例
G1 Young Generation: #新生代
Eden Space: #Eden区空间
regions = 670
capacity = 2699034624 (2574.0MB)
used = 1405091840 (1340.0MB)
free = 1293942784 (1234.0MB)
52.05905205905206% used
Survivor Space: #Survivor区
regions = 3
capacity = 6291456 (6.0MB)
used = 6291456 (6.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation: #老生代
regions = 72
capacity = 1589641216 (1516.0MB)
used = 146589472 (139.79861450195312MB)
free = 1443051744 (1376.2013854980469MB)
9.221544492213267% used
3.查看java堆中对象的相关信息,包含数量以及占用的空间大小
jmap -histo PID
查看监控 heap size 和 jvm垃圾回收情况,尤其是gc情况的监控,如果老年代发生full gc,那么很可能会导致内存泄漏的可能性
jstat -gcutil pid
属性参照:
S0: Survivor 0区的空间使用率 Survivor space 0 utilization as a percentage of the space's current capacity.
S1: Survivor 1区的空间使用率 Survivor space 1 utilization as a percentage of the space's current capacity.
E: Eden区的空间使用率 Eden space utilization as a percentage of the space's current capacity.
O: 老年代的空间使用率 Old space utilization as a percentage of the space's current capacity.
M: 元数据的空间使用率 Metaspace utilization as a percentage of the space's current capacity.
CCS: 类指针压缩空间使用率 Compressed class space utilization as a percentage.
YGC: 新生代GC次数 Number of young generation GC events.
YGCT: 新生代GC总时长(从应用程序启动到采样时年轻代中gc所用时间 单位:s)
Young generation garbage collection time.
FGC: Full GC次数 Number of full GC events.
FGCT: Full GC总时长(从应用程序启动到采样时old代(全gc)gc所用时间 单位:s)
Full garbage collection time.
GCT: 总共的GC时长 (从应用程序启动到采样时gc用的总时间 单位:s)Total garbage collection time.
注:full gc很具有代表性,full gc次数 和时间 指标很能显示系统性能问题,这两个指标很大,很大程度上说明了程序中有问题,垃圾一直回收不掉
————————————————
原文链接:https://blog.csdn.net/weixin_43945983/article/details/90174751
标签:
上一篇: maven项目打包成WAR包提示:程序包***不存在的解决方案
下一篇: jvm参数说明