jinfo 是jdk自带的一个工具,它可以用来查看正在运行的java应用程序的扩展参数(JVM中-X标示的参数);甚至支持在运行时修改部分参数。
1、通过以下的命令你便能看到JVM中哪些flag可以被jinfo动态修改:
- CMSAbortablePrecleanWaitMillis100
- CMSWaitDuration2000
- HeapDumpAfterFullGCfalse
- HeapDumpBeforeFullGCfalse
- HeapDumpOnOutOfMemoryErrorfalse
- HeapDumpPath
- MaxHeapFreeRatio100
- MinHeapFreeRatio0
- PrintClassHistogramfalse
- PrintClassHistogramAfterFullGCfalse
- PrintClassHistogramBeforeFullGCfalse
- PrintConcurrentLocksfalse
- PrintGCfalse
- PrintGCDateStampsfalse
- PrintGCDetailsfalse
- PrintGCTimeStampsfalse
通过选项-XX:+PrintFlagsFinal可以列出所有的JVM flag,而其中的标注为manageable 的flag则是值得我们关注的部分。这些flag可通过JDK management interface(-XX:+PrintFlagsFinal)动态修改。
【实例】
1、查看参数值:# ps -ef | grep 8807
# 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/
文章来源: jinfo 使用