jinfo命令

jinfo 是jdk自带的一个工具,它可以用来查看正在运行的java应用程序的扩展参数(JVM中-X标示的参数);甚至支持在运行时修改部分参数。

1、通过以下的命令你便能看到JVM中哪些flag可以被jinfo动态修改:

 
  1. # java -XX:+PrintFlagsFinal -version|grep manageable

  2. intx CMSAbortablePrecleanWaitMillis = 100 {manageable}

  3. intx CMSWaitDuration = 2000 {manageable}

  4. bool HeapDumpAfterFullGC = false {manageable}

  5. bool HeapDumpBeforeFullGC = false {manageable}

  6. bool HeapDumpOnOutOfMemoryError = false {manageable}

  7. ccstr HeapDumpPath = {manageable}

  8. uintx MaxHeapFreeRatio = 100 {manageable}

  9. uintx MinHeapFreeRatio = 0 {manageable}

  10. bool PrintClassHistogram = false {manageable}

  11. bool PrintClassHistogramAfterFullGC = false {manageable}

  12. bool PrintClassHistogramBeforeFullGC = false {manageable}

  13. bool PrintConcurrentLocks = false {manageable}

  14. bool PrintGC = false {manageable}

  15. bool PrintGCDateStamps = false {manageable}

  16. bool PrintGCDetails = false {manageable}

  17. bool PrintGCTimeStamps = false {manageable}

  18. java version "1.7.0_79"

  19. Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

  20. Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

通过选项-XX:+PrintFlagsFinal可以列出所有的JVM flag,而其中的标注为manageable 的flag则是值得我们关注的部分。这些flag可通过JDK management interface(-XX:+PrintFlagsFinal)动态修改。

【实例】

1、查看参数值:
# ps -ef | grep 8807
root      8807     1  2 14:54 ?        00:03:11 /data/apps/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xms20480m -Xmx20480m -Xss2m -XX:PermSize=512M -XX:MaxNewSize=512m -XX:MaxPermSize=512m -XX:NewRatio=2 -XX:+CMSParallelRemarkEnabled -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -verbose:gc -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -Xloggc:/data/logs/tomcat/gc.log -Dcom.sun.management.jmxremote.port=1999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start


# jinfo -flag GCLogFileSize 8807
-XX:GCLogFileSize=10485760


2、打开gc:

在jinfo中需要打开-XX:+PrintGC和 -XX:+PrintGCDetails两个选项才能开启GC日志,这与用命令行参数的方式实现有着细微的差别——如果你通过启动脚本(startup script)来设置参数,仅需-XX:+PrintGCDetails即可,因为-XX:+PrintGC会被自动打开。

# jinfo -flag+PrintGCDetails 12278

# jinfo -flag+PrintGC 12278



3、关闭gc:
若想关闭GC日志功能,只需要执行jinfo -flag -PrintGCDetails 12278和 jinfo -flag -PrintGC 12278命令即可。


参考:https://www.bbsmax.com/A/ZOJPZgKodv/

猜你喜欢

转载自blog.csdn.net/kwame211/article/details/81082914
今日推荐