jinfo 是 JDK 自带的命令,能够用来查看正在运行的 java 应用程序的扩大参数,包含Java System属性和JVM命令行参数;也能够动静的批改正在运行的 JVM 一些参数。当零碎解体时,jinfo能够从core文件外面晓得解体的Java应用程序的配置信息
查看jvm所有参数默认值
> java -XX:+PrintFlagsInitial -version
查看jvm所有的参数
> java -XX:+PrintFlagsFinal -version
查看以后JVM
运行的参数
用法:
> jinfo -flags pid
查看零碎所有的Java过程
> jcmd24386 sun.tools.jcmd.JCmd18378 plan.war
查看plan.war
过程的运行参数
> jinfo -flags 18378Attaching to process ID 18378, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.261-b12Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=262144000 -XX:MaxHeapSize=4164943872 -XX:MaxNewSize=1388314624 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=87031808 -XX:OldSize=175112192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC Command line:
查看具体某一个参数的值
> jinfo -flag InitialHeapSize 18378
开启/敞开某个JVM参数
应用 jinfo 能够在不重启虚拟机的状况下,能够动静的批改 jvm 的参数。尤其在线上的环境特地有用。
形容:开启或者敞开对应名称的参数,次要是针对 boolean 值的参数设置的
> jinfo -flag [+|-]name pid
> jinfo -flag PrintGC 18378-XX:-PrintGC> jinfo -flag +PrintGC 18378> jinfo -flag PrintGC 18378-XX:+PrintGC> jinfo -flag -PrintGC 18378> jinfo -flag PrintGC 18378-XX:-PrintGC
批改某个JVM
过程的值
jinfo尽管能够在java程序运行时动静地批改虚拟机参数,但并不是所有的参数都反对动静批改
> jinfo -flag name=value pid
输入以后JVM
过程所有的零碎属性
> jinfo -sysprops pid
> jinfo -sysprops 18378Attaching to process ID 18378, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.261-b12java.runtime.name = Java(TM) SE Runtime Environmentjna.platform.library.path = /usr/lib64:/lib64:/usr/lib:/lib:/usr/lib64/mysqljava.vm.version = 25.261-b12sun.boot.library.path = /usr/local/jdk1.8/jre/lib/amd64mail.smtp.sendpartial = truejava.vendor.url = http://java.oracle.com/java.vm.vendor = Oracle Corporationpath.separator = :guice.disable.misplaced.annotation.check = truefile.encoding.pkg = sun.iojava.vm.name = Java HotSpot(TM) 64-Bit Server VMjna.loaded = truesun.os.patch.level = unknownsun.java.launcher = SUN_STANDARDuser.country = USuser.dir = /rootjava.vm.specification.name = Java Virtual Machine Specificationjava.runtime.version = 1.8.0_261-b12java.awt.graphicsenv = sun.awt.X11GraphicsEnvironmentos.arch = amd64java.endorsed.dirs = /usr/local/jdk1.8/jre/lib/endorsedline.separator = java.io.tmpdir = /tmpjava.vm.specification.vendor = Oracle Corporationos.name = Linuxmail.smtps.sendpartial = truesun.jnu.encoding = UTF-8jnidispatch.path = /root/.cache/JNA/temp/jna4559128793649671554.tmpjetty.git.hash = de97d26f7bd222a0e16831e353d702a7a422f711java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/libjava.specification.name = Java Platform API Specificationjava.class.version = 52.0sun.management.compiler = HotSpot 64-Bit Tiered Compilersos.version = 3.10.0-957.el7.x86_64user.home = /rootuser.timezone = Asia/Shanghaijava.awt.printerjob = sun.print.PSPrinterJobfile.encoding = UTF-8java.specification.version = 1.8user.name = rootjava.class.path = jenkins.warjava.vm.specification.version = 1.8sun.arch.data.model = 64sun.java.command = jenkins.warjava.home = /usr/local/jdk1.8/jreuser.language = enjava.specification.vendor = Oracle Corporationawt.toolkit = sun.awt.X11.XToolkitjava.vm.info = mixed modejava.version = 1.8.0_261java.ext.dirs = /usr/local/jdk1.8/jre/lib/ext:/usr/java/packages/lib/extsun.boot.class.path = /usr/local/jdk1.8/jre/lib/resources.jar:/usr/local/jdk1.8/jre/lib/rt.jar:/usr/local/jdk1.8/jre/lib/sunrsasign.jar:/usr/local/jdk1.8/jre/lib/jsse.jar:/usr/local/jdk1.8/jre/lib/jce.jar:/usr/local/jdk1.8/jre/lib/charsets.jar:/usr/local/jdk1.8/jre/lib/jfr.jar:/usr/local/jdk1.8/jre/classesjava.awt.headless = truejava.vendor = Oracle Corporationfile.separator = /java.vendor.url.bug = http://bugreport.sun.com/bugreport/sun.io.unicode.encoding = UnicodeLittlesun.font.fontmanager = sun.awt.X11FontManagersun.cpu.endian = littleexecutable-war = /root/jenkins.warsun.cpu.isalist =