查看及修改运行环境参数:jinfo

用途

jinfo 可以查看,修改运行中的 java 程序的运行环境参数(包括 Java System 属性和 JVM 命令行参数)。

语法

jinfo 的语法如下:

    jinfo [option] <pid>
        (to connect to running process)
    jinfo [option] <executable <core>
        (to connect to a core file)
    jinfo [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

选项:

where <option> is one of:
    -flag <name>         to print the value of the named VM flag # 打印指定 name 的 JVM flag
    -flag [+|-]<name>    to enable or disable the named VM flag # 启用或者禁用指定 name 的 JVM flag
    -flag <name>=<value> to set the named VM flag to the given value # 设置指定名称的 name flag 为给定的值
    -flags               to print VM flags # 打印 JVM flags
    -sysprops            to print Java system properties # 打印 Java 系统属性
    <no option>          to print both of the above # 打印出所有的 JVM flags 和 sysprops
    -h | -help           to print this help message # 打印帮助信息

示例

打印 JVM flags
root@7e2ee19d74ac:/# jinfo -flags 1
Attaching to process ID 1, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.275-b01
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:MaxHeapSize=482344960 -XX:MaxNewSize=160759808 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=10485760 -XX:OldSize=20971520 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops 
Command line:  

需要注意的是,VM Flags 只会打印出非默认的参数。

打印 Java 系统属性
root@7e2ee19d74ac:/# jinfo -sysprops 1
Attaching to process ID 1, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.275-b01
java.runtime.name = OpenJDK Runtime Environment
java.vm.version = 25.275-b01
sun.boot.library.path = /usr/local/openjdk-8/jre/lib/amd64
java.protocol.handler.pkgs = org.springframework.boot.loader
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = :
file.encoding.pkg = sun.io
java.vm.name = OpenJDK 64-Bit Server VM
sun.os.patch.level = unknown
sun.java.launcher = SUN_STANDARD
user.dir = /
java.vm.specification.name = Java Virtual Machine Specification
PID = 1
java.runtime.version = 1.8.0_275-b01
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = /usr/local/openjdk-8/jre/lib/endorsed
line.separator = 

java.io.tmpdir = /tmp
java.vm.specification.vendor = Oracle Corporation
os.name = Linux
sun.jnu.encoding = UTF-8
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
spring.beaninfo.ignore = true
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 3.10.0-1127.19.1.el7.x86_64
user.home = /root
user.timezone = Etc/UTC
catalina.useNaming = false
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
catalina.home = /tmp/tomcat.865544947560060337.8082
user.name = root
java.class.path = /mytest.jar
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = /mytest.jar
java.home = /usr/local/openjdk-8/jre
user.language = en
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.X11.XToolkit
java.vm.info = mixed mode
java.version = 1.8.0_275
java.ext.dirs = /usr/local/openjdk-8/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /usr/local/openjdk-8/jre/lib/resources.jar:/usr/local/openjdk-8/jre/lib/rt.jar:/usr/local/openjdk-8/jre/lib/sunrsasign.jar:/usr/local/openjdk-8/jre/lib/jsse.jar:/usr/local/openjdk-8/jre/lib/jce.jar:/usr/local/openjdk-8/jre/lib/charsets.jar:/usr/local/openjdk-8/jre/lib/jfr.jar:/usr/local/openjdk-8/jre/classes
java.awt.headless = true
java.vendor = Oracle Corporation
catalina.base = /tmp/tomcat.865544947560060337.8082
file.separator = /
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.cpu.isalist = 
修改运行中的 JVM Flags

jinfo 能够修改一部分运行期间能够调整的虚拟机参数,在修改后,值只能通过 jinfo 看到,jps 是看不到的,因为 jps 命令只能看到启动时的 jvm 参数。

例如查看是否开启 GC 日志的打印

root@7e2ee19d74ac:/# jinfo -flag PrintGC 1
-XX:-PrintGC
root@7e2ee19d74ac:/# jinfo -flag PrintGCDetails 1
-XX:-PrintGCDetails

打开这两个参数

root@7e2ee19d74ac:/# jinfo -flag +PrintGC 1
root@7e2ee19d74ac:/# jinfo -flag PrintGC 1
-XX:+PrintGC
root@7e2ee19d74ac:/# jinfo -flag +PrintGCDetails 1
root@7e2ee19d74ac:/# jinfo -flag PrintGCDetails 1
-XX:+PrintGCDetails

关闭参数

root@7e2ee19d74ac:/# jinfo -flag -PrintGC 1
root@7e2ee19d74ac:/# jinfo -flag PrintGC 1
-XX:-PrintGC
root@7e2ee19d74ac:/# jinfo -flag -PrintGCDetails 1
root@7e2ee19d74ac:/# jinfo -flag PrintGCDetails 1
-XX:-PrintGCDetails
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值