jvm调优之jinfo

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/qq2430/article/details/82154442

概要

jinfo [ options ] [ pid]

  • options:命令行选项。
  • pid:进程ID。

用于输出JAVA配置信息,配置信息包括Java System属性和JVM的参数。也可以在运行时修改部分参数。本文使用的是JDK10,不同版本间可能存在差异。

OPTIONS

不添加options的时候,默认查看jvm参数和系统参数。

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo 4306
Java System Properties:
#Sat Sep 01 13:27:19 CST 2018
awt.toolkit=sun.awt.X11.XToolkit
java.specification.version=10
file.encoding.pkg=sun.io
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
java.class.path=../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
java.vm.vendor="Oracle Corporation"
sun.arch.data.model=64
catalina.useNaming=false
java.vendor.url=http\://java.oracle.com/
user.timezone=Asia/Shanghai
java.vm.specification.version=10
os.name=Linux
sun.java.launcher=SUN_STANDARD
user.country=US
sun.boot.library.path=/usr/local/jdk-10.0.2/lib
sun.java.command=../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
jdk.debug=release
sun.cpu.endian=little
user.home=/root
user.language=en
java.specification.vendor=Oracle Corporation
java.version.date=2018-07-17
java.home=/usr/local/jdk-10.0.2
file.separator=/
java.vm.compressedOopsMode=32-bit
line.separator=\n
java.specification.name=Java Platform API Specification
java.vm.specification.vendor=Oracle Corporation
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.headless=true
java.protocol.handler.pkgs=org.springframework.boot.loader
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
java.runtime.version=10.0.2+13
user.name=root
path.separator=\:
os.version=3.10.0-862.2.3.el7.x86_64
java.runtime.name=Java(TM) SE Runtime Environment
file.encoding=UTF-8
spring.beaninfo.ignore=true
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vendor.version=18.3
java.vendor.url.bug=http\://bugreport.java.com/bugreport/
java.io.tmpdir=/tmp
catalina.home=/tmp/tomcat.135283677550490481.8000
java.version=10.0.2
user.dir=/usr/local
os.arch=amd64
java.vm.specification.name=Java Virtual Machine Specification
PID=4306
java.awt.printerjob=sun.print.PSPrinterJob
sun.os.patch.level=unknown
catalina.base=/tmp/tomcat.135283677550490481.8000
java.library.path=/usr/java/packages/lib\:/usr/lib64\:/lib64\:/lib\:/usr/lib
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.version=10.0.2+13
sun.io.unicode.encoding=UnicodeLittle
java.class.version=54.0

VM Flags:
-XX:CICompilerCount=2 -XX:CMSAbortablePrecleanWaitMillis=50 -XX:CMSWaitDuration=2000 -XX:-HeapDumpAfterFullGC -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:MaxNewSize=6946816 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=6946816 -XX:NonNMethodCodeHeapSize=5824844 -XX:NonProfiledCodeHeapSize=122916698 -XX:OldSize=14024704 -XX:ProfiledCodeHeapSize=122916698 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseSerialGC 

VM Arguments:
jvm_args: -Xms20m -Xmx20m 
java_command: ../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
java_class_path (initial): ../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
Launcher Type: SUN_STANDARD

-flags:查看jvm参数

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flags 4306
VM Flags:
-XX:CICompilerCount=2 -XX:CMSAbortablePrecleanWaitMillis=50 -XX:CMSWaitDuration=2000 -XX:+HeapDumpAfterFullGC -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:MaxNewSize=6946816 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=6946816 -XX:NonNMethodCodeHeapSize=5824844 -XX:NonProfiledCodeHeapSize=122916698 -XX:OldSize=14024704 -XX:ProfiledCodeHeapSize=122916698 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseSerialGC 

-flag < name >查看指定name的jvm参数
可以使用java -XX:+PrintFlagsFinal -version|grep manageable查看哪些jvm参数可以被修改。

[root@izbp1chtb8a3vd2mzvuawlz ~]# java -XX:+PrintFlagsFinal -version|grep manageable
     intx CMSAbortablePrecleanWaitMillis           = 100                                   {manageable} {default}
     intx CMSTriggerInterval                       = -1                                    {manageable} {default}
     intx CMSWaitDuration                          = 2000                                  {manageable} {default}
     bool HeapDumpAfterFullGC                      = false                                 {manageable} {default}
     bool HeapDumpBeforeFullGC                     = false                                 {manageable} {default}
     bool HeapDumpOnOutOfMemoryError               = false                                 {manageable} {default}
    ccstr HeapDumpPath                             =                                       {manageable} {default}
    uintx MaxHeapFreeRatio                         = 70                                    {manageable} {default}
    uintx MinHeapFreeRatio                         = 40                                    {manageable} {default}
     bool PrintClassHistogram                      = false                                 {manageable} {default}
     bool PrintConcurrentLocks                     = false                                 {manageable} {default}
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag HeapDumpAfterFullGC 4306
-XX:+HeapDumpAfterFullGC

-flag [ +|- ] < name >启用或者禁用指定name的jvm参数

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag HeapDumpAfterFullGC 4306
-XX:+HeapDumpAfterFullGC
[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag -HeapDumpAfterFullGC 4306
[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag HeapDumpAfterFullGC 4306 
-XX:-HeapDumpAfterFullGC

- -flag < name > = < value >修改指定name的jvm参数值

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag CMSAbortablePrecleanWaitMillis 4306    
-XX:CMSAbortablePrecleanWaitMillis=100
[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag CMSAbortablePrecleanWaitMillis=50 4306
[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -flag CMSAbortablePrecleanWaitMillis 4306   
-XX:CMSAbortablePrecleanWaitMillis=50

-sysprops:查看系统参数

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -sysprops 4306
Java System Properties:
#Sat Sep 01 13:26:02 CST 2018
awt.toolkit=sun.awt.X11.XToolkit
java.specification.version=10
file.encoding.pkg=sun.io
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
java.class.path=../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
java.vm.vendor="Oracle Corporation"
sun.arch.data.model=64
catalina.useNaming=false
java.vendor.url=http\://java.oracle.com/
user.timezone=Asia/Shanghai
java.vm.specification.version=10
os.name=Linux
sun.java.launcher=SUN_STANDARD
user.country=US
sun.boot.library.path=/usr/local/jdk-10.0.2/lib
sun.java.command=../workspace/analysis/target/analysis-0.0.1-SNAPSHOT.jar
jdk.debug=release
sun.cpu.endian=little
user.home=/root
user.language=en
java.specification.vendor=Oracle Corporation
java.version.date=2018-07-17
java.home=/usr/local/jdk-10.0.2
file.separator=/
java.vm.compressedOopsMode=32-bit
line.separator=\n
java.specification.name=Java Platform API Specification
java.vm.specification.vendor=Oracle Corporation
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.headless=true
java.protocol.handler.pkgs=org.springframework.boot.loader
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
java.runtime.version=10.0.2+13
user.name=root
path.separator=\:
os.version=3.10.0-862.2.3.el7.x86_64
java.runtime.name=Java(TM) SE Runtime Environment
file.encoding=UTF-8
spring.beaninfo.ignore=true
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vendor.version=18.3
java.vendor.url.bug=http\://bugreport.java.com/bugreport/
java.io.tmpdir=/tmp
catalina.home=/tmp/tomcat.135283677550490481.8000
java.version=10.0.2
user.dir=/usr/local
os.arch=amd64
java.vm.specification.name=Java Virtual Machine Specification
PID=4306
java.awt.printerjob=sun.print.PSPrinterJob
sun.os.patch.level=unknown
catalina.base=/tmp/tomcat.135283677550490481.8000
java.library.path=/usr/java/packages/lib\:/usr/lib64\:/lib64\:/lib\:/usr/lib
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.version=10.0.2+13
sun.io.unicode.encoding=UnicodeLittle
java.class.version=54.0

-h | -helps:查看帮助信息

[root@izbp1chtb8a3vd2mzvuawlz ~]# jinfo -help
Usage:
    jinfo <option> <pid>
       (to connect to a running process)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -flags               to print VM flags
    -sysprops            to print Java system properties
    <no option>          to print both VM flags and system properties
    -h | -help           to print this help message

参考文档:https://docs.oracle.com/javase/10/tools/jinfo.htm

猜你喜欢

转载自blog.csdn.net/qq2430/article/details/82154442