查看jvm的运行参数

举报
共饮一杯无 发表于 2023/01/30 14:35:26 2023/01/30
【摘要】 查看jvm的运行参数有些时候我们需要查看jvm的运行参数,这个需求可能会存在2种情况:第一,运行java命令时打印出运行参数;第二,查看正在运行的java进程的参数; 运行java命令时打印参数运行java命令时打印参数,需要添加-XX:+PrintFlagsFinal参数即可。E:\jvm>java -XX:+PrintFlagsFinal -version[Global flags] ...

查看jvm的运行参数

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

运行java命令时打印参数

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

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类型和数字类型,值的操作符是=或:=,分别代表默认值和被修改的值

示例:

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
访问成功:
image.png

通过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:\developer\tomcat\apache-tomcat-7.0.70\conf\logging.properties 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=F:\developer\tomcat\apache-tomcat-7.0.70\endorsed 
-Dcatalina.base=F:\developer\tomcat\apache-tomcat-7.0.70 -Dcatalina.home=F:\developer\tomcat\apache-tomcat-7.0.70 -Djava.io.tmpdir=F:\developer\tomcat\apache-tomcat-7.0.70\temp

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

E:\jvm>jinfo -flag MaxHeapSize  23832
-XX:MaxHeapSize=4263510016

本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
保持热爱,奔赴下一场山海。🏃🏃🏃

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。