查看jvm的运行参数

2022-11-28 15:46:11 浏览数 (1)

查看jvm的运行参数

有些时候我们需要查看jvm的运行参数,这个需求可能会存在2种情况: 第一,运行java命令时打印出运行参数; 第二,查看正在运行的java进程的参数;

运行java命令时打印参数

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

代码语言:javascript复制
E:jvm>java -XX: PrintFlagsFinal -version
[Global flags]
    uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}
    uintx AdaptiveSizeMajorGCDecayTimeScale         = 10                                  {product}
    uintx AdaptiveSizePausePolicy                   = 0                                   {product}
    uintx AdaptiveSizePolicyCollectionCostMargin    = 50                                  {product}
    ....略...
     uintx YoungPLABSize                             = 4096                                {product}
     bool ZeroTLAB                                  = false                               {product}
     intx hashCode                                  = 5                                   {product}
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

由上述的信息可以看出,参数有boolean类型和数字类型,值的操作符是=或:=,分别代表默认值和被修改的值

示例:

代码语言:javascript复制
E:jvm>java -XX: PrintFlagsFinal -XX: VerifySharedSpaces -version
intx ValueMapInitialSize	= 11
{C1 product}
intx ValueMapMaxLoopSize	= 8
{C1 product}
intx ValueSearchLimit	= 1000
{C2 product}
bool VerifyMergedCPBytecodes	= true
{product}
bool VerifySharedSpaces	:= true
{product}
intx hashCode	= 5
{product}          java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141‐b15)
Java HotSpot(TM) 64‐Bit Server VM (build 25.141‐b15, mixed mode) 
#可以看到VerifySharedSpaces这个参数已经被修改了。

查看正在运行的jvm参数

如果想要查看正在运行的jvm就需要借助于jinfo命令查看。 首先,启动一个tomcat用于测试,来观察下运行的jvm参数。 解压安装包,执行bin目录下的startup.bat(linux环境执行startup.sh) 访问成功:

通过jps 或者 jps ‐l 查看java进程

代码语言:javascript复制
E:jvm>jps -l
17664
1000 org.jetbrains.idea.maven.server.RemoteMavenServer
23832 org.apache.catalina.startup.Bootstrap
14412 sun.tools.jps.Jps

查看所有的参数,用法:jinfo ‐flags <进程id>

代码语言:javascript复制
E:jvm> jinfo -flags  23832
Attaching to process ID 23832, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.171-b11
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=268435456 
-XX:MaxHeapSize=4263510016 -XX:MaxNewSize=1420820480 -XX:MinHeapDeltaBytes=524288 
-XX:NewSize=89128960 -XX:OldSize=179306496 -XX: UseCompressedClassPointers -XX: UseCompressedOops 
-XX: UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX: UseParallelGC
Command line:  -Djdk.tls.ephemeralDHKeySize=2048 -Djava.util.logging.config.file=F:developertomcatapache-tomcat-7.0.70conflogging.properties 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=F:developertomcatapache-tomcat-7.0.70endorsed 
-Dcatalina.base=F:developertomcatapache-tomcat-7.0.70 -Dcatalina.home=F:developertomcatapache-tomcat-7.0.70 -Djava.io.tmpdir=F:developertomcatapache-tomcat-7.0.70temp

查看某一参数的值,用法:jinfo ‐flag <参数名> <进程id>

代码语言:javascript复制
E:jvm>jinfo -flag MaxHeapSize  23832
-XX:MaxHeapSize=4263510016

本文内容到此结束了, 如有收获欢迎点赞

0 人点赞