专栏首页JVMGC查看JVM运行参数jinfo命令
原创

查看JVM运行参数jinfo命令

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进程

> jcmd
24386 sun.tools.jcmd.JCmd
18378 plan.war

查看plan.war进程的运行参数

> jinfo -flags 18378
Attaching to process ID 18378, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
Non-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 18378
Attaching to process ID 18378, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
java.runtime.name = Java(TM) SE Runtime Environment
jna.platform.library.path = /usr/lib64:/lib64:/usr/lib:/lib:/usr/lib64/mysql
java.vm.version = 25.261-b12
sun.boot.library.path = /usr/local/jdk1.8/jre/lib/amd64
mail.smtp.sendpartial = true
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = :
guice.disable.misplaced.annotation.check = true
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
jna.loaded = true
sun.os.patch.level = unknown
sun.java.launcher = SUN_STANDARD
user.country = US
user.dir = /root
java.vm.specification.name = Java Virtual Machine Specification
java.runtime.version = 1.8.0_261-b12
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = /usr/local/jdk1.8/jre/lib/endorsed
line.separator = 

java.io.tmpdir = /tmp
java.vm.specification.vendor = Oracle Corporation
os.name = Linux
mail.smtps.sendpartial = true
sun.jnu.encoding = UTF-8
jnidispatch.path = /root/.cache/JNA/temp/jna4559128793649671554.tmp
jetty.git.hash = de97d26f7bd222a0e16831e353d702a7a422f711
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
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-957.el7.x86_64
user.home = /root
user.timezone = Asia/Shanghai
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
user.name = root
java.class.path = jenkins.war
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = jenkins.war
java.home = /usr/local/jdk1.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_261
java.ext.dirs = /usr/local/jdk1.8/jre/lib/ext:/usr/java/packages/lib/ext
sun.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/classes
java.awt.headless = true
java.vendor = Oracle Corporation
file.separator = /
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.font.fontmanager = sun.awt.X11FontManager
sun.cpu.endian = little
executable-war = /root/jenkins.war
sun.cpu.isalist = 

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jvm 性能调优工具之 jinfo

    java404
  • JVM的运行参数

    jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变,可以使用 java -help 检索出所有的标准参数。

    乐心湖
  • 强大的JVM监控工具!

    在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的

    Java识堂
  • Java 线程调优 JDK常用命令行工具 Jstack & Arthas使用笔记 查找耗时线程

    jps(JVM Process Status) 命令类似 UNIX 的 ps 命令。

    大鹅
  • JVM优化系列-------[2丶查看jvm的运行参数]

    运行java命令打印参数,只需要添加-XX:+PrintFlagsFinal参数即可

    框架师
  • 基于JDK命令行工具的监控

    要说最常见的JVM参数应该是 -Xmx 与 -Xms 这两个参数,前者用于指定初始化堆的大小,而后者用于指定堆的最大值。然后就是-Xss参数,它用于指定线程的堆...

    端碗吹水
  • JVM系列——5个常用的命令与示例

    jinfo -flag [+|-] PIDjinfo -flag = PID(4)查看曾经赋过值的一些参数

    田维常
  • JDK监控和故障处理工具总结

    jps(JVM Process Status) 命令类似 UNIX 的 ps 命令。

    Vincent-yuan
  • JVM - 列出JVM默认参数及运行时生效参数

    有的时候,想看下自己没有设置的JVM参数的值, 或者有的时候想看下JVM某个参数的默认值 ,亦或想看下用户或者JVM修改的JVM参数 ?

    小小工匠
  • JDK自带JVM调优工具,一次性打包讲给你听

    前面已经讲过了jps和jstat调优工具。今天我们继续说一下其它4个工具。这些工具都在jdk的bin目录下。

    田维常
  • JVM 学习笔记 (六)

      前几篇文章和大家介绍了JVM中的内存模型以及垃圾回收器,今天和大家一起学习一下在平时jvm调优的过程中常用的参数以及命令。

    会说话的丶猫
  • JVM学习二

    jps、jstat、jinfo、jhat、jstack、jconsole、jmap、MAT、Btrace、psi_probe监控tomcat,通过gceasy查...

    路行的亚洲
  • 没有源码调试!生产环境如何排除和优化 JVM?

    生产环境中直接排查 JVM 的话,最简单的做法就是使用 JDK 自带的 6 个非常实用的命令行工具来排查。它们分别是:jps、jstat、jinfo、jmap、...

    码农架构
  • 没有源码调试!生产环境如何排除和优化 JVM?

    生产环境中直接排查 JVM 的话,最简单的做法就是使用 JDK 自带的 6 个非常实用的命令行工具来排查。它们分别是:jps、jstat、jinfo、jmap、...

    码农架构
  • Java性能调优工具之JDK命令行

    JavaEdge
  • JVM 问题排查工具

    Java 开发人员肯定都知道 JDK的 bin 目录中有 “java.exe”、“javac.exe” 这两个命令行工具。下面主要介绍一些监视虚拟机和故障处理的...

    Java架构师必看
  • java性能分析与常用工具

    jdk提供的这些工具都是使用java语言编写的,他们都来自于lib/tools.jar,解压tools.jar,然后找到它下面sun/tools,截图如下,可以...

    千羽
  • 017. JDK 内置命令工具

    山海散人
  • JVM参数调优基础-参数的类型详解

    -help -server -client -version -showversion -cp -classpath

    JavaEdge

扫码关注云+社区

领取腾讯云代金券