目录

一、jinfo:实时查看和修改JVM配置参数

二、jinfo查看参数

三、jinfo修改参数

四、拓展


一、jinfo:实时查看和修改JVM配置参数

jinfo(Configuration Info for Java):查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数。在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值,这个查找过程可能是非常艰难的。但有了jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。

基本使用语法为:jinfo [options] pid

使用jinfo -h查看帮助文档:

C:\Users\WSH>jinfo -h
Usage: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-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 of the above-h | -help           to print this help message

options参数说明:

选项

选项说明

no option

输出全部的参数和系统属性

-flag name

输出对应名称的参数

-flag [+-]name

开启或者关闭对应名称的参数 只有被标记为manageable的参数才可以被动态修改

-flag name=value

设定对应名称的参数

-flags

输出全部的参数

-sysprops

输出系统属性

二、jinfo查看参数

【a】jinfo -sysprops:输出系统属性

C:\Users\WSH>jinfo -sysprops 15508
Attaching to process ID 15508, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.291-b10
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.291-b10
sun.boot.library.path = C:\Program Files\Java\jdk1.8.0_291\jre\bin
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = ;
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level =
sun.java.launcher = SUN_STANDARD
user.script =
user.country = CN
user.dir = D:\workspace\rocketmq-demo
java.vm.specification.name = Java Virtual Machine Specification
java.runtime.version = 1.8.0_291-b10
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = C:\Program Files\Java\jdk1.8.0_291\jre\lib\endorsed
visualvm.id = 120895073993900
line.separator =java.io.tmpdir = C:\Users\WSH\AppData\Local\Temp\
java.vm.specification.vendor = Oracle Corporation
user.variant =
os.name = Windows 10
sun.jnu.encoding = GBK
java.library.path = C:\Program Files\Java\jdk1.8.0_291\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Java\jdk1.8.0_291\bin;D:\development\apache-maven-3.5.4\bin;D:\development\git\Git\cmd;D:\development\xftp\;D:\development\xshell\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\WSH\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;D:\development\idea201803\IntelliJ IDEA 2018.3.6\bin;;D:\development\Fiddler;.
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 10.0
user.home = C:\Users\WSH
user.timezone = Asia/Shanghai
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
user.name = weishihuai
java.class.path = C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;D:\workspace\rocketmq-demo\target\classes;D:\mvn\repository\org\springframework\boot\spring-boot-starter-web\2.3.11.RELEASE\spring-boot-starter-web-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter\2.3.11.RELEASE\spring-boot-starter-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot\2.3.11.RELEASE\spring-boot-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-autoconfigure\2.3.11.RELEASE\spring-boot-autoconfigure-2.3.11.RELEASE.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-logging\2.3.11.RELEASE\spring-boot-starter-logging-2.3.11.RELEASE.jar;D:\mvn\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\mvn\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\mvn\repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;D:\mvn\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;D:\mvn\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\mvn\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\mvn\repository\org\yaml\snakeyaml\1.26\snakeyaml-1.26.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-json\2.3.11.RELEASE\spring-boot-starter-json-2.3.11.RELEASE.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;D:\mvn\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;D:\mvn\repository\org\springframework\boot\spring-boot-starter-tomcat\2.3.11.RELEASE\spring-boot-starter-tomcat-2.3.11.RELEASE.jar;D:\mvn\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.46\tomcat-embed-core-9.0.46.jar;D:\mvn\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;D:\mvn\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.46\tomcat-embed-websocket-9.0.46.jar;D:\mvn\repository\org\springframework\spring-web\5.2.15.RELEASE\spring-web-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-beans\5.2.15.RELEASE\spring-beans-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-webmvc\5.2.15.RELEASE\spring-webmvc-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-aop\5.2.15.RELEASE\spring-aop-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-context\5.2.15.RELEASE\spring-context-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-expression\5.2.15.RELEASE\spring-expression-5.2.15.RELEASE.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-client\4.8.0\rocketmq-client-4.8.0.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-common\4.8.0\rocketmq-common-4.8.0.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-remoting\4.8.0\rocketmq-remoting-4.8.0.jar;D:\mvn\repository\com\alibaba\fastjson\1.2.69\fastjson-1.2.69.jar;D:\mvn\repository\io\netty\netty-all\4.1.65.Final\netty-all-4.1.65.Final.jar;D:\mvn\repository\org\apache\rocketmq\rocketmq-logging\4.8.0\rocketmq-logging-4.8.0.jar;D:\mvn\repository\io\netty\netty-tcnative-boringssl-static\2.0.39.Final\netty-tcnative-boringssl-static-2.0.39.Final.jar;D:\mvn\repository\commons-validator\commons-validator\1.6\commons-validator-1.6.jar;D:\mvn\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;D:\mvn\repository\commons-digester\commons-digester\1.8.1\commons-digester-1.8.1.jar;D:\mvn\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;D:\mvn\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\mvn\repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar;D:\mvn\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\mvn\repository\org\springframework\spring-core\5.2.15.RELEASE\spring-core-5.2.15.RELEASE.jar;D:\mvn\repository\org\springframework\spring-jcl\5.2.15.RELEASE\spring-jcl-5.2.15.RELEASE.jar;D:\mvn\repository\org\assertj\assertj-core\3.16.1\assertj-core-3.16.1.jar;D:\development\idea201803\IntelliJ IDEA 2018.3.6\lib\idea_rt.jar
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = com.wsh.JVMCommandTest
java.home = C:\Program Files\Java\jdk1.8.0_291\jre
user.language = zh
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode
java.version = 1.8.0_291
java.ext.dirs = C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path = C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\classes
java.vendor = Oracle Corporation
file.separator = \
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = windows
sun.cpu.isalist = amd64

【b】jinfo -flags:输出全部的参数

C:\Users\WSH>jinfo -flags 15508
Attaching to process ID 15508, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.291-b10
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=257949696 -XX:MaxHeapSize=4127195136 -XX:MaxNewSize=1375731712 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=85983232 -XX:OldSize=171966464 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line:  -Dvisualvm.id=120895073993900 -javaagent:D:\development\idea201803\IntelliJ IDEA 2018.3.6\lib\idea_rt.jar=49555:D:\development\idea201803\IntelliJ IDEA 2018.3.6\bin -Dfile.encoding=UTF-8

【c】jinfo -flag:输出对应名称的参数

C:\Users\WSH>jinfo -flag UseParallelGC 15508
-XX:+UseParallelGCC:\Users\WSH>jinfo -flag UseG1GC 15508
-XX:-UseG1GCC:\Users\WSH>jinfo -flag MaxHeapSize 15508
-XX:MaxHeapSize=4127195136

三、jinfo修改参数

jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。但是,并非所有参数都支持动态修改,参数只有被标记为manageable的flag可以被实时修改。其实,这个修改能够是极其有限的。

【a】jinfo -flag [+/-]name:修改指定名称的JVM参数

C:\Users\WSH>jinfo -flag PrintGCDetails 15508
-XX:-PrintGCDetailsC:\Users\WSH>jinfo -flag +PrintGCDetails 15508C:\Users\WSH>jinfo -flag PrintGCDetails 15508
-XX:+PrintGCDetails

四、拓展

  • java -XX:+PrintFlagsInitial :查看所有JVM参数启动的初始值
C:\Users\WSH>java -XX:+PrintFlagsInitial
[Global flags]intx ActiveProcessorCount                      = -1                                  {product}uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}uintx AdaptiveSizeMajorGCDecayTimeScale         = 10                                  {product}uintx AdaptiveSizePausePolicy                   = 0                                   {product}
...
  • java -XX:+PrintFlagsFinal :查看所有JVM参数的最终值
C:\Users\WSH>java -XX:+PrintFlagsFinal 15508
[Global flags]intx ActiveProcessorCount                      = -1                                  {product}
...intx CICompilerCount                          := 4                                   {product}uintx InitialHeapSize                          := 333447168                           {product}uintx MaxHeapSize                              := 1029701632                          {product}uintx MaxNewSize                               := 1774714880                          {product}                          {product}.......
  • java -XX:+PrintCommandLineFlags :查看哪些已经被用户或者JVM设置过的详细的XX参数的名称和值
C:\Users\WSH>java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=257920192 -XX:MaxHeapSize=4126723072 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC

JVM监控及诊断工具命令行篇之jinfo相关推荐

  1. JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇

    二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...

  2. 14、JVM监控及诊断工具-命令行篇

    文章目录 第1章.概述 1.简单命令行工具 第2章.jps:查看正在运行的Java进程 1.基本情况 2.基本语法 [1]options参数 [2]hostid参数 第3章.jstat:查看JVM统计 ...

  3. JVM监控及诊断工具命令行篇之jps

    目录 一.概述 二.jps:查看正在运行的Java进程 一.概述 性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益. Java 作 ...

  4. JVM监控及诊断工具-命令行篇一

    1 jps 基本概述 jps(java process status),用于查看正在运行的java虚拟机进程,会显示指定系统内所有的HotSpot虚拟机进程(查看虚拟机进程信息).这里说明一下,对于本 ...

  5. JVM学习笔记之-JVM性能监控-JVM监控及诊断工具-命令行方式

    性能优化的步骤 第1步(发现问题):性能监控 一种以非强行或者入侵方式收集或查看应用运营性能数据的活动. 监控通常是指一种在生产.质量评估或者开发环境下实施的带有预防或主动性的活动. 当应用相关干系人 ...

  6. 尚硅谷JVM下篇:性能监控与调优篇_02_JVM监控及诊断工具-命令行篇

    文章目录 1-概述 概述 简单命令行工具 2-jps:查看正在运行的Java进程 基本情况 基本语法: options参数 hostid参数 3-jstat:查看JVM统计信息 基本信息 基本语法 o ...

  7. JVM监控及诊断工具之GUI篇

    目录 工具概述 图形化综合诊断工具 jConsole 基本概述 启动 三种连接方式 Visual VM 基本概述 插件的安装 连接方式 基本使用 eclipse MAT 基本概述 获取堆dump文件 ...

  8. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  9. JVM监控及诊断工具-GUI篇

    3.JVM监控及诊断工具-GUI篇 一.工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系.各方 ...

  10. 20.JVM监控以及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 20. JVM监控及诊断工具-GUI篇 20.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相 ...

最新文章

  1. php遍历文件夹下文件内容_PHP遍历某文件夹下的文件与文件夹名
  2. BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】
  3. linux一直用户身份验证失败,linux – chsh:PAM身份验证失败
  4. catia v5法矢数据软件_catia介绍
  5. 苹果禁用FaceTime多人聊天功能:漏洞将很快修复
  6. [ILINK32 Error] Error: Unresolved external 'WSAIoctl'
  7. ubuntu下安装pythoncharm_Ubuntu下安装、激活并配置Pycharm
  8. 【脑电信号】基于matlab小波工具箱脑电降噪【含Matlab源码 707期】
  9. 解决Navicat 15注册机出现 rsa public key not found
  10. Camera ISO、快门、光圈、曝光
  11. Dubbo笔记 ⑤ : 服务发布流程 - Protocol#export
  12. CCPC-Wannafly Comet OJ 夏季欢乐赛(2019) 飞行棋
  13. sealos快速部署k8s集群
  14. 【Redis笔记】发布与订阅
  15. 反编译 jdk1.8 工具 [Procyon-Decompiler]
  16. Android设置应用程序默认语言
  17. 电动车防盗报警器语音提示芯片,PWM功放音频ic选型——NVC
  18. 【邮件邮箱】点击链接调起微信跳转到公众号、添加好友如何实现?
  19. 122. 买卖股票的最佳时机 II(JavaScript)
  20. dell 服务器硬盘failed,DELL服务器PERC-5-6RAID操作系统下诊断硬盘故障(tty)手册.pdf

热门文章

  1. 算法:Three sum求三个数之和
  2. jsp嵌入vlc视频回放_【知识】如何用监控进行视频直播?一文了解清楚
  3. 计算机考研复试问题回答,关于考研复试问题的官方解答及部分问题答题模板!...
  4. paddle serving
  5. 如何提升沟通技能与提出解决方案
  6. 将大于2的偶数分解成两个素数之和
  7. Harnessing Your Zombies to Help You
  8. 【数字图像处理系列四】图像数据集增强方式总结和实现
  9. 随记-Git相关操作
  10. 《K-means聚类算法研究综述》笔记