01 JVM的参数类型、jinfo & jps(参数和进程查看)、jstat(类加载、垃圾收集、JIT 编译)

JVM的参数类型

标准参数(各版本中保持稳定)
-help
-server -client
-version -showversion
-cp -classpath
 
X 参数(非标准化参数)
-Xint:解释执行
-Xcomp:第一次使用就编译成本地代码
-Xmixed:混合模式,JVM 自己决定是否编译成本地代码
示例:
java -version(默认是混合模式)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
java -Xint -version
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, interpreted mode)
 
XX 参数(非标准化参数)
主要用于 JVM调优和 debug
  • Boolean类型
  • 非Boolean类型
格式:-XX:<name>=<value> 表示 name 属性的值是 value
如:-XX:MaxGCPauseMillis=500
-XX:GCTimeRatio=19
-Xmx -Xms属于 XX 参数
-Xms 等价于-XX:InitialHeapSize
-Xmx 等价于-XX:MaxHeapSize
-xss 等价于-XX:ThreadStackSize 

查看

jinfo -flag MaxHeapSize <pid>
-XX:+PrintFlagsInitial
-XX:+PrintFlagsFinal
-XX:+UnlockExperimentalVMOptions 解锁实验参数
-XX:+UnlockDiagnosticVMOptions 解锁诊断参数
-XX:+PrintCommandLineFlags 打印命令行参数
输出结果中=表示默认值,:=表示被用户或 JVM 修改后的值
示例:java -XX:+PrintFlagsFinal -version
 
补充:测试中需要用到 Tomcat,CentOS 7安装示例如下
pid 可通过类似 ps -ef|grep tomcat或 jps来进行查看

jps

详情参考 jps官方文档
-l

jinfo

jinfo -flag MaxHeapSize <pid>
jinfo -flags <pid>
 

jstat

详情参考 jstat 官方文档

JAVA生产环境性能监控与调优
类加载

垃圾收集

-gc, -gcutil, -gccause, -gcnew, -gcold

以下大小的单位均为 KB

S0C, S1C, S0U, S1U: S0和 S1的总量和使用量

EC, EU: Eden区总量与使用量

OC, OU: Old区总量与使用量

MC, MU: Metacspace区(jdk1.8前为 PermGen)总量与使用量

CCSC, CCSU: 压缩类区总量与使用量

YGC, YGCT: YoungGC 的次数与时间

FGC, FGCT: FullGC 的次数与时间

GCT: 总的 GC 时间

JIT 编译

-compiler, -printcompilation
 
posted @ 2020-05-06 20:23  尐海爸爸  阅读(337)  评论(0编辑  收藏  举报