JVM调优命令行工具

一、jps指令:
Jps [options] [hostid] (hostid为ip或域名地址)

jps 是用于查看有权访问的 hotspot 虚拟机的进程,当未指定 hostid 时,默认查看本机 jvm 进程。

  • -q: 不输出类名、Jar 名和传入 main 方法的参数
  • -m: 输出传入 main 方法的参数
  • -l: 输出 main 类或 Jar 的全限名
  • -v: 输出传入 JVM 的参数
二、jmap指令:
jmap -heap pid:用于打印指定 Java 进程的对象内存映射或堆内存细节,可检测堆的配置信息;
jmap -histo:live pid:定位内存泄露

输出结果参数说明:

  1. MaxHeapFreeRatio: 最大空闲堆内存比例,GC 后如果发现空闲堆内存大于整个预估堆内存的 N%(百分比),JVM 则会收缩堆内存,但不能小于-Xms 指定的最小堆的限制。
  2. MinHeapFreeRatio: 最小空闲堆内存比例 ,GC 后如果发现空闲堆内存小于整个预估堆内存的 N%(百分比), 则 JVM 会增大堆内存,但不能超过-Xmx 指定的最大堆内存限制。
  3. MaxHeapSize: 即-Xmx, 堆内存大小的上限
  4. InitialHeapSize: 即-Xms, 堆内存大小的初始值
  5. NewSize: 新生代预估堆内存占用的默认值
  6. MaxNewSize: 新生代占整个堆内存的最大值
  7. OldSize: 老年代的默认大小,
  8. NewRatio: 老年代对比新生代的空间大小, 比如 2 代表老年代空间是新生代的两倍大小.
  9. SurvivorRatio: Eden/Survivor 的值. 例如 8 表示 Survivor:Eden=1:8, 因为 survivor 区有 2 个, 所以 Eden 的占比为 8/10.
  10. MetaspaceSize: 分配给类元数据空间的初始大小(Oracle 逻辑存储上的初始高水位,the initial high-water-mark ). 此值为估计值. MetaspaceSize 设置得过大会延长垃圾回收时间. 垃圾回收过后,引起下一次垃圾回收的类元数据空间的大小可能会变大
  11. MaxMetaspaceSize: 是分配给类元数据空间的最大值, 超过此值就会触发 Full GC. 此值仅受限于系统内存的大小, JVM 会动态地改变此值
  12. CompressedClassSpaceSize: 类指针压缩空间大小, 默认为 1G.
  13. G1HeapRegionSize: G1区块的大小, 取值为1M至32M. 其取值是要根据最小Heap大小划分出2048 个区块.

说明: jmap 在系统调优时通常会结合 jhat 来分析 jmap 生成的 dump 文件。

三、jstack指令:
jstack -l pid用于生成java虚拟机当前时刻的线程快照,来检测死锁

你可能感兴趣的:(JVM)