返回顶部
首页 > 资讯 > 后端开发 > Python >Java中的jinfo命令使用详解
  • 944
分享到

Java中的jinfo命令使用详解

2024-04-02 19:04:59 944人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录jinfo命令简介jinfo命令参数-flag name-flag [+|-]name-flag name=value-flags-sysprops-h 和 -help结尾jin

jinfo命令简介

jinfo(Java Virtual Machine Configuration InfORMation)是jdk提供的一个可以实时查看Java虚拟机各种配置参数和系统属性的命令行工具。使用jps命令的-v参数可以查看Java虚拟机启动时显式指定的配置参数,如果想查看没有显式指定的配置参数就可以使用jinfo命令进行查看。另外,jinfo命令还可以查询Java虚拟机进程的System.getProperties()的内容。

在没有dbgeng.dllwindows系统中,必须安装用于Windows的调试工具才能使jinfo命令正常工作,PATH环境变量应该包含JVM.dll的位置。

jinfo命令参数

命令语法:

jinfo [option] pid

命令参数说明:

  • option:jinfo命令的可选参数。如果没有指定这个参数,jinfo命令会显示所有的配置参数和系统属性。
  • pid:要打印配置信息的Java虚拟机的进程ID。

想要要获取运行的Java虚拟机进程的列表,可以使用ps命令(linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独的Docker实例中运行,可以使用jps命令。

option都有哪些参数呢?我们来看一下。

-flag name

显示指定名称对应的配置参数,比如,查看了简单GC日志模式(PrintGC)是否开启:

# jinfo -flag PrintGC 15729
-XX:-PrintGC

-flag [+|-]name

启用或禁用指定名称的参数,该参数必须为Boolean类型。比如,开启简单GC日志模式:

# jinfo -flag +PrintGC 15729
# jinfo -flag PrintGC 15729
-XX:+PrintGC

比如,禁用简单GC日志模式:

# jinfo -flag -PrintGC 15729
# jinfo -flag PrintGC 15729
-XX:-PrintGC

-flag name=value

不需要重启Java虚拟机,修改指定名称的参数为指定的值。比如,修改空闲堆空间的最小百分比(MinHeapFreeRatio)为30%:

# jinfo -flag MinHeapFreeRatio 15729
-XX:MinHeapFreeRatio=40
# jinfo -flag MinHeapFreeRatio=30 15729
# jinfo -flag MinHeapFreeRatio 15729
-XX:MinHeapFreeRatio=30

当然不是所有参数都可以这样修改的,比如并发垃圾收集器将使用的线程数(ConcGCThreads):

# jinfo -flag ConcGCThreads=5 15729
Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'ConcGCThreads' cannot be changed

        at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:229)
        at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:261)
        at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:234)
        at sun.tools.jinfo.JInfo.flag(JInfo.java:134)
        at sun.tools.jinfo.JInfo.main(JInfo.java:81)

那么,有哪些配置参数是支持动态修改的呢?我们可以通过java -XX:+PrintFlagsInitial命令找到标记为manageable的配置参数,运行结果如下图所示:

-flags

显示全部的配置参数,比如:

# jinfo -flags 15729
Attaching to process ID 15729, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.251-b08
Non-default VM flags: -XX:CICompilerCount=4 -XX:ConcGCThreads=2 -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=1073741824 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=536870912 -XX:MetaspaceSize=268435456 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapFreeRatio=30 -XX:NewSize=536870912 -XX:-PrintGC -XX:SurvivorRatio=4 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC 
Command line:  -Xmx1g -Xms1g -Xmn512m -XX:SurvivorRatio=4 -XX:MetaspaceSize=256m -XX:+UseG1GC

-sysprops

以键值对的方式显示当前Java虚拟机的全部的系统属性,比如:

# jinfo -sysprops 15729
Attaching to process ID 15729, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.251-b08
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.251-b08
sun.boot.library.path = /usr/local/java/jdk1.8.0_251/jre/lib/amd64
java.protocol.handler.pkgs = org.springframework.boot.loader
java.vendor.url = Http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = :
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level = unknown
sun.java.launcher = SUN_STANDARD
user.country = CN
java.vm.specification.name = Java Virtual Machine Specification
PID = 15729
java.runtime.version = 1.8.0_251-b08
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = /usr/local/java/jdk1.8.0_251/jre/lib/endorsed
line.separator = 
......

-h 和 -help

显示jinfo命令的帮助信息。

结尾

虽然jinfo命令已经推出很久并且使用频率比较搞,但它仍然是一个“实验性质的,并且没有技术支持的”(Experimental and Unsupported)工具,日后可能会被转正,也有可能在某个JDK版本中无声无息地消失。所以,且用且珍惜吧。

到此这篇关于Java的jinfo命令使用详解的文章就介绍到这了,更多相关Java jinfo命令内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java中的jinfo命令使用详解

本文链接: https://lsjlt.com/news/143025.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中的jinfo命令使用详解
    目录jinfo命令简介jinfo命令参数-flag name-flag [+|-]name-flag name=value-flags-sysprops-h 和 -help结尾jin...
    99+
    2024-04-02
  • 详解java jinfo命令
    目录一、介绍二、jinfo命令格式三、option四、执行样例五、增加JVM打印详细GC日志参数一、介绍 jinfo(Configuration Info for Java)的作用是...
    99+
    2024-04-02
  • Java中jstat命令的使用详解
    目录jstat命令简介jstat命令参数输出选项-class选项-compiler选项-gc选项-gccapacity选项-gcutil选项-gccause选项-gcnew选项-gc...
    99+
    2024-04-02
  • java的jps命令使用详解
    jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上...
    99+
    2024-04-02
  • Java中的zookeeper常用命令详解
    目录1.zkCli.sh客户端2.多节点类型创建3.查询节点4.set数据5.删除节点6.权限设置7.其他命令注意我这里用的是官方最稳定的版本3.7.1,版本之间有个别命令是有差距的...
    99+
    2024-04-02
  • Java的jstack命令使用示例详解
    目录jstack命令简介jstack命令参数-F参数-l参数-m参数-h 和 -help结尾jstack命令简介 jstack(Java Virtual Machine Stack ...
    99+
    2024-04-02
  • Linux中的screen命令使用详解
    GUN Screen: 官方网址:http://www.gnu.org/software/screen/ 1、简介 Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地...
    99+
    2022-06-04
    Linux screen命令 Linux screen
  • Git中bundle命令的使用详解
    目录1. 打包2. 验证3. 查看分支4. 导入bundle4.1. 没有gitlab服务器4.2. 有gitlab服务器4.2.1 从bundle中clone4.2.2 从bund...
    99+
    2024-04-02
  • linux中使用grep命令详解
    linux grep命令 Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输...
    99+
    2022-06-04
    linux grep
  • bash命令使用详解
    在linux上采用bash作为标准,基本上它描述了对带有“.sh”扩展名的vi编辑器等文本的处理并执行。 与编程一样,它有许多函数,如变量,函数和算术处理,所以如果你是一个小程序,你可以用bash编写它。 BNejvPy...
    99+
    2022-06-04
    bash
  • sar命令使用详解
    sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/...
    99+
    2024-04-02
  • ping命令使用详解
    概述 在网络中ping是一个使用频率非常高的网络连通性检查工具,它的作用主要有: 1、用来检测网络的连通情况和分析网络速度 2、根据域名得到服务器IP 3、根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量 我们通常...
    99+
    2023-08-19
    网络 服务器 运维
  • Linux中rz命令和sz命令使用详解大全
    sz命令 用途说明:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可以使用rz命令。 常用参数 -a 以文本方式传...
    99+
    2022-06-04
    命令 详解 大全
  • 详解Linux time 命令的使用
    1.命令简介 time 用于统计命令执行所消耗的时间及相关系统资源等信息。time 可以显示的资源有四大项,分别是: Time resources Memory resources IO resources Com...
    99+
    2022-06-03
    Linux time Linux time命令
  • Linux seq命令的使用详解
    01. 命令概述 seq命令用于产生整数序列。 02. 命令格式 用法: seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 03. 常用选项 ...
    99+
    2022-06-04
    Linux seq命令 Linux seq
  • linux rm命令的使用详解
    本篇内容主要讲解“linux rm命令的使用详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux rm命令的使用详解”吧!1.命令格式:rm [选项] 文件…2.命...
    99+
    2023-06-13
  • linux route命令的使用详解
    route命令是一个用于显示和管理Linux系统中IP路由表的命令。它可以用来查看和修改系统的路由表信息。route命令的基本语法如...
    99+
    2023-09-20
    linux
  • JDK常用命令jps jinfo jstat的具体说明与示例
    概述 JDK的bin目录下提供了很多命令工具,比如java.exe,javap.exe,javac.exe。。。。。。这些命令由jdk/lib/tools.jar类库中提供的,是对t...
    99+
    2024-04-02
  • Java的jps命令简介及使用示例详解
    目录jps命令简介jps命令参数jps命令示例结尾jps命令简介 jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出...
    99+
    2024-04-02
  • 在Linux命令行中使用计算器的5个命令详解
    大家好,我是良许。 在使用 linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器。在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算、财务计算或者一些简单的计算。当然,我...
    99+
    2022-06-04
    Linux命令行中使用计算器的命令 Linux命令行计算器命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作