查看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进程
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>
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>
E:jvm>jinfo -flag MaxHeapSize 23832
-XX:MaxHeapSize=4263510016
本文内容到此结束了, 如有收获欢迎点赞