jps与 jmap 与 jstat

本文详细介绍了Java开发中常用的jps、jmap和jstat命令,包括它们的作用、参数以及在内存管理和性能监控中的应用,特别是针对Java堆配置、新生代和老年代内存使用情况的分析。
摘要由CSDN通过智能技术生成

0.概况

java 版本

java version “1.8.0_291”
Java™ SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot™ 64-Bit Server VM (build 25.291-b10, mixed mode)

namedesc
jpsjvm进程
jmapjava内存映像工具
jstatjvm统计信息监测

1. jps

用于显示jvm所有进程的命令

常用搭配:

  1. jps -q : -q 仅显示vmid

  2. jps -mlv :
    -m:输出传递给主方法的参数。

    -l:输出主类的完整包名或JAR文件的完整路径。

    -v:输出传递给JVM的参数。
    -V: 待补充

-V 参数和 -v参数 是互斥的

2. jmap

用于转储程序快照
注意:

  • jmap -heap 命令会暂停 Java 进程的执行并进行内存快照,可能会对应用程序的性能产生一定的影响
  • jmap -heap 命令可能会产生较大的输出,最好输出重定向到文件中

常用搭配:
jmap -heap [vmid]
结果分以下几块:
Heap Configuration: 主要是 堆配置

Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 968884224 (924.0MB)# 堆的最大容量
NewSize = 19922944 (19.0MB) # 表示新生代的初始容量
MaxNewSize = 322961408 (308.0MB) # 表示新生代的最大容量
OldSize = 40894464 (39.0MB)
NewRatio = 2 #表示新生代与老年代内存大小的比例为 1:2
SurvivorRatio = 8 #表示 Eden 区域与 Survivor 区域之间内存大小的比例为8:1:1
MetaspaceSize = 21807104 (20.796875MB) #表示元数据区域的大小
CompressedClassSpaceSize = 1073741824 (1024.0MB) # 表示压缩类空间的大小
MaxMetaspaceSize = 17592186044415 MB #表示元数据区域的最大容量
G1HeapRegionSize = 0 (0.0MB) # # 表示 G1 垃圾回收器使用的内存

Heap Usage: 堆内存使用情况

Heap Usage:
PS Young Generation #新生代情况
Eden Space: # eden区
capacity = 42991616 (41.0MB) #表示 Eden 区域的最大容量
used = 4082944 (3.893798828125MB) # eden已使用容量
free = 38908672 (37.106201171875MB) #eden空闲容量
9.4970703125% used # eden已使用占比
From Space: # 表示 Survivor 0
capacity = 10485760 (10.0MB) # survivor from 区域的最大容量
used = 5457520 (5.2046966552734375MB) #survivor from 区域已使用容量
free = 5028240 (4.7953033447265625MB) #survivor from 区域空闲容量
52.046966552734375% used #已使用百分比
To Space: # 表示 Survivor `
capacity = 12058624 (11.5MB) # survivor from 区域的最大容量,下等同survivor from
used = 0 (0.0MB)
free = 12058624 (11.5MB)
0.0% used # 已使用百分比
PS Old Generation #老年代 区域的最大容量
capacity = 52953088 (50.5MB) #老年代最大容容积
used = 34483696 (32.88621520996094MB) # 老年代已使用容量
free = 18469392 (17.613784790039062MB) # 老年代空闲容量
65.12121823754642% used # #老年代 已使用百分比

2. jstat

对程序进行实时的信息统计
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

    -class (类加载器)
    -compiler (JIT)
    -gc (GC 堆状态)
    -gccapacity (各区大小)
    -gccause (最近一次 GC 统计和原因)
    -gcnew (新区统计)
    -gcnewcapacity (新区大小)
    -gcold (老区统计)
    -gcoldcapacity (老区大小)
    -gcpermcapacity (永久区大小)
    -gcutil (GC 统计汇总)
    -printcompilation (HotSpot 编译统计)

常用搭配:
jstat -gcutil 27115(jstat -gcutil vmid [间隔时间/毫秒] [查询次数])
#显示垃圾收集信息

  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
 52.05   0.00  13.09  65.12  94.58  92.59     66    0.863     2    0.106    0.969

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
M:元数据区已使用的占当前容量百分比
CCS:压缩类空间已使用的占当前容量百分比
YGC :从应用程序启动到采样时年轻代中gc次数
YGCT :从应用程序启动到采样时年轻代中gc所用时间(s)
FGC :从应用程序启动到采样时old代(全gc)gc次数
FGCT :从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值