【JVM】基于JDK命令行监控

JVM参数类型

标准参数

# 此类参数相对比较稳定
-help
-server -client #指定JVM的类型
-version  #就是查看当前机器的java是什么版本,是什么类型的JVM(Server/Client),采用的是什么执行模式。
-showversion #运行一个程序的时候首先把JVM的版本信息打印出来,这样便于问题诊断。个人建议Server类型的程序都把这个选项打开,这样可以发现一些配置问题

非标准化参数

# 可能在JVM的各个版本中会有变化,但是变化的比较小
-Xint #表示禁用JIT,所有字节码都被解释执行,这个模式的速度最慢的
-Xcomp #表示所有字节码都首先被编译成本地代码,然后再执行
-Xmixed #默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码。 

非标准化参数,相对不稳定,主要用于JVM调优和Debug

# Boolean类型
# -XX:[+-]<name> 表示启用或者禁用name属性
-XX:+UseConcMarkSweepGC #使用CMS垃圾收集器
-XX:+UseG1GC #使用G1收集器
-XX:+UseParNewGC #在新生代使用并行收集器
-XX:+UseParallelOldGC #老年代使用并行回收收集器
-XX:+UseSerialGC #在新生代和老年代使用串行回收器。 
# 非Boolean类型
# -XX:<name>=<value> 表示name属性的值是value
-XX:MaxGCPauseMillis=500 #最大停顿时间
-XX:InitialHeapSize #初始化堆大小
-XX:MaxHeapSize #最大的堆大小
-XX:ThreadStackSize #堆栈内存大小

查看JVM运行时参数

-XX:+PrintFlagsInitial #初始值,有可能被修改
-XX:+PrintFlagsFinal #最终值
-XX:+UnlockExperimentalVMOptions #解锁实验参数
-XX:+UnlockDiagnosticVMOptions #解锁诊断参数
-XX:+PrintCommandLineFlags #打印命令行参数

命令行工具

jps

#查看Java进程
[root@localhost ~]# jps -l
1092 org.apache.catalina.startup.Bootstrap
2362 sun.tools.jps.Jps

jinfo

#查看最大内存
[root@localhost ~]# jinfo -flag MaxHeapSize 1092
-XX:MaxHeapSize=482344960
#查看垃圾回收器
[root@localhost ~]# jinfo -flag UseG1GC 1092
-XX:-UseG1GC
[root@localhost ~]# jinfo -flag UseParallelGC 1092
-XX:-UseParallelGC

jstat

#类装载 jstat -class Java进程号 间隔时间 打印次数
[root@localhost ~]# jstat -class 1092 1000 10
Loaded  Bytes  Unloaded  Bytes     Time   
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
  7044 12850.6       29    40.2      39.31
#GC收集情况 jstat -gc Java进程号 间隔时间 打印次数
#类似查询:-gcutil -gccause -gcnew -gcold
[root@localhost ~]# jstat -gc 1092 1000 3
#JIT编译
[root@localhost ~]# jstat -compiler 1092
Compiled Failed Invalid   Time   FailedType FailedMethod
    4428      0       0    27.64          0             
[root@localhost ~]# jstat -printcompilation 1092
Compiled  Size  Type Method
    4428    152    1 org/apache/catalina/core/StandardHost$MemoryLeakTrackingList ener lifecycleEvent

猜你喜欢

转载自blog.csdn.net/zlt995768025/article/details/81748215