你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值

JVM参数类型

  1. 标配参数(了解) 
    -version 
    -help 
    -showversion
  2. X参数(了解) 
    -Xint 解释执行 
    -Xcomp 第一次使用就编译成本地代码 
    -Xmixed 混合模式
  3. XX参数 
    3.1 boolean类型:-XX:+/- 某个属性值
    • +表示开启某个属性
    • -表示没有开启

  3.2 K-V设值类型:-XX:key=value

JVM参数如何查看

  1. jps、jinfo
    • 如何查看一个正在运行中的java程序,它的某个jvm参数是否开启?具体值是多少?例如:jps(查看java后台运行线程)、jinfo(查看java运行信息)
    • 查看Java运行参数信息jinfo -flag:

jinfo -flag 配置项 进程编号 :查看当前运行程序的配置 
jinfo -flag InitialHeapSize 11676 :查看初始堆大小 
jinfo -flags 进程编号 查看所有配置项

是否使用串行垃圾回收器:-XX:+UseSerialGC | -XX:-UseSerialGC 
是否打印GC收集细节:-XX:+PrintGCDetails | -XX:-PrintGCDetails

E:\ideaProjects\mq>jinfo -flag MetaspaceSize 11676 #查看MetaspaceSize的值
-XX:MetaspaceSize=21807104

E:\ideaProjects\mq>jinfo -flag MaxTenuringThreshold 11676 #多大的极限年龄可以到养老区
-XX:MaxTenuringThreshold=15

-Xms 和 -Xmx: 
-Xms 等价于: -XX:InitialHeapSize [查看初始堆大小] 
-Xmx 等价于: -XX:MaxHeapSize [查看最大堆大小]

  1. java -XX: 
    直接运行 java -XX:+PrintFlagsInitial 查看初始默认值 
    直接运行 java -XX:+PrintFlagsFinal -version 查看修改更新

Window: java -XX:+PrintFlagsInitial | findstr MaxHeap 
Mac: java -XX:+PrintFlagsInitial | grep MaxHeap

E:\ideaProjects\mq>java -XX:+PrintFlagsFinal -version | findstr MaxHeap
    uintx MaxHeapFreeRatio                          = 100             {manageable}
    uintx MaxHeapSize                              := 2118123520      {product}
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

= JVM默认加载的 
:= 人为或JVM修改过的 
-XX:+PrintComandLineFlags 查看部分参数 
-XX:+UseParallelGC 表示现在的垃圾回收机制,当前为并行回收

E:\ideaProjects\mq>java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=132345856 -XX:MaxHeapSize=2117533696 -XX:+PrintCommandLineFlags -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

 

posted @ 2019-10-13 12:18  要好好吃饭  阅读(298)  评论(0编辑  收藏  举报