jinfo用法说明

以下几种用法

-flags pid :打印当前VM的参数

-flag <name> pid:打印指定JVM的参数值 

-flag [+|-]<name> pid:设置指定JVM参数的布尔值

-flag <name>=<value> pid:设置指定JVM参数的值

-sysprops  pid : 获取当前系统参数包括-D设置的参数

 当然并不是所有的参数都是允许修改的,只允许修改其中部分参数。

可以通过PrintFlagFinal参数打印支持的参数。

java -XX:+PrintFlagsFinal -version|grep manageable  

输出结果:
     intx CMSAbortablePrecleanWaitMillis            = 100                                 {manageable}
     intx CMSTriggerInterval                        = -1                                  {manageable}
     intx CMSWaitDuration                           = 2000                                {manageable}
     bool HeapDumpAfterFullGC                       = false                               {manageable}
     bool HeapDumpBeforeFullGC                      = false                               {manageable}
     bool HeapDumpOnOutOfMemoryError                = false                               {manageable}
    ccstr HeapDumpPath                              =                                     {manageable}
    uintx MaxHeapFreeRatio                          = 100                                 {manageable}
    uintx MinHeapFreeRatio                          = 0                                   {manageable}
     bool PrintClassHistogram                       = false                               {manageable}
     bool PrintClassHistogramAfterFullGC            = false                               {manageable}
     bool PrintClassHistogramBeforeFullGC           = false                               {manageable}
     bool PrintConcurrentLocks                      = false                               {manageable}
     bool PrintGC                                   = false                               {manageable}
     bool PrintGCDateStamps                         = false                               {manageable}
     bool PrintGCDetails                            = false                               {manageable}
     bool PrintGCID                                 = false                               {manageable}
     bool PrintGCTimeStamps                         = false                               {manageable}
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

1、jinfo -flags pid  

./jinfo -flags 13553

  输出结果:

Attaching to process ID 13553, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.51-b03
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=526385152 -XX:MaxHeapSize=8415870976 -XX:MaxNewSize=2804940800 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=175112192 -XX:OldSize=351272960 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC 
Command line: 

2、jinfo -flag <name> pid

./jinfo -flag InitialHeapSize 13553

  输出结果:

-XX:InitialHeapSize=526385152

3、jinfo -flag [+|-]<name> pid

./jinfo -flag +PrintGCDetails 13553

./jinfo -flag -PrintGCDetails 13553

4、jinfo -flag <name>=<value> pid

./jinfo -flag MaxHeapFreeRatio=10 13553

5、jinfo -sysprops  pid

通过以下方式启动Java程序:java -Dtest.dir=/opt -cp test.jar test.Main

./jinfo -flag test.dir 3532

输出结果中,存在启动时添加的-Dtest.dir=/opt

test.dir = /opt
原文地址:https://www.cnblogs.com/woniu4/p/8178833.html