基于JVM-jinfo的使用方式

jinfo是什么,可以干什么?

jinfo全称Configuration Info for Java作用是实时查看和调整虚拟机各项参数。

使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表。

注意先 jps -l 查出进程id

相关命令查询

查看所有参数

jinfo 20220

基于JVM-jinfo的使用方式_第1张图片

查询CMS的配置

jinfo -flag CMSInitiatingOccupancyFraction 20220

094c99dd0363eee7175a1cbde1131930.png

查看jvm的参数

jinfo -flags 20220

7f093078362b6b2a1e37257b07c16c82.png

查看java系统参数

jinfo -sysprops  20220

基于JVM-jinfo的使用方式_第2张图片

查看是否打开GC及详情

jinfo -flag PrintGC 20220

ed40cd2de6808af65ffe16d7a18e07dc.png

jinfo -flag PrintGCDetails 20220

基于JVM-jinfo的使用方式_第3张图片

打开gc打印

jinfo -flag +PrintGC 20220

8febacc47c9c729e978c3049b0900537.png

再次查看

a244b5a0e58901129e1bed855aaff61e.png

最后

jinfo在排查jvm问题和日常查看jvm配置的时候常用,所以用好该命令可以有助日后对jvm排查的掌握。

并且jinfo可以动态的来配置jvm的参数,这样极大方便虚拟机的实时调试,不需要再重新启动的时候配置,并且也可以快速进行验证,非常方便实用。

JVM Troubleshooting命令-jinfo

概述

用来查看正在运行的Java应用程序的扩展参数,支持在运行时,修改部分参数。

命令格式

jinfo [ option ] pid

jinfo [ option ] executable core

jinfo [ option ] [ servier-id ] remote-hostname-or-IP

  • option : 命令行功能选项
  • pid : 进程id
  • executable : 生成可执行的core dump文件
  • core : 要打印配置信息的核心文件
  • remote-hostname-or-IP : 远程调试服务器主机名或IP地址
  • servier-id : 在同一个远程主机上运行多个调试服务器时使用的可选唯一ID

查看最大内存: jinfo -flag MaxHeapSize pid

查看垃圾回收器 : jinfo -flag UseParallelGC pid

功能选项

  • 无参数 : 以key=value的方式输出全部的参数和系统属性
  • -flag 参数名 : 输出指定的参数的值

如jinfo -flag PrintGC 8520显示PrintGC参数状态

在这里插入图片描述

  • -flag [+|-] 参数名 : 启用或禁用指定参数的功能(参数必须是布尔型的)

如jinfo -flag -PrintGC 8520关闭PrintGC功能

如jinfo -flag +PrintGC 8520打开PrintGC功能

基于JVM-jinfo的使用方式_第4张图片

  • -flag name=value : 设置参数name值为value
  • -flags : 输出传递给JVM的参数

基于JVM-jinfo的使用方式_第5张图片

  • -sysprops : 以key-value的方式打印java系统属性

基于JVM-jinfo的使用方式_第6张图片

  • -h : 打印帮助信息
  • -help : 打印帮助信息

不是所有参数都可以修改的, 哪些参数可以修改的,可以使用下面命令查询:

java -XX:+PrintFlagsFinal -version | grep manageable

官方文档

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(基于JVM-jinfo的使用方式)