阅读量:0
JVM监控及诊断工具-命令行篇02-jinfo:实时查看和修改JVM配置参数
一 基本情况
jinfo(Configuration Info for Java)查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数。
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值。这个査找过程可能是非常艰难的。但有了jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。 官方帮助文档:
二 基本语法
2.1查看
jinfo -sysprops PID
可以查看由System.getProperties()取得的参数
jinfo -flags PID
查看曾经赋过值的一些参数
JVM version is 25.111-b14 Non-default VM flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=4 -XX:InitialHeapSize=232783872 -XX:+ManagementServer -XX:MaxHeapSize=3724541952 -XX:MaxNewSize=1241513984 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=77594624 -XX:OldSize=155189248 -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC Command line: -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -javaagent:D:\DJWORK\09IDeal\ideal2021\IntelliJ IDEA 2021.2\lib\idea_rt.jar=3626:D:\DJWORK\09IDeal\ideal2021\IntelliJ IDEA 2021.2\bin -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8
jinfo -flag 具体参数 PID
查看某个java进程的具体参数的值
2.2修改
jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。 但是,并非所有参数都支持动态修改。参数只有被标记为manageable的flag可以被实时修改。其实,这个修改能力是极其有限的。
可以查看被标记为manageable的参数
java -XX:+PrintFlagsFinal -version | grep manageable
- 针对boolean类型
jinfo -flag [+|-]具体参数 PID
- 针对非boolean类型
jinfo -flag 具体参数=具体参数值 PID
三 拓展
java -XX:+PrintFlagsInitial
查看所有JVM参数启动的初始值
java -XX:+PrintFlagsFinal
查看所有JVM参数的最终值
java -XX:+PrintCommandLineFlags
查看那些已经被用户或者JVM设置过的详细的XX参数的名称和值