zoukankan      html  css  js  c++  java
  • 【十】虚拟机工具 03

     

    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo
    Usage:
        jinfo [option] <pid>
            (to connect to running process)
        jinfo [option] <executable <core>
            (to connect to a core file)
        jinfo [option] [server_id@]<remote server IP or hostname>
            (to connect to remote debug server)
    
    where <option> is one of:
        -flag <name>         to print the value of the named VM flag
        -flag [+|-]<name>    to enable or disable the named VM flag
        -flag <name>=<value> to set the named VM flag to the given value
        -flags               to print VM flags
        -sysprops            to print Java system properties
        <no option>          to print both of the above
        -h | -help           to print this help message

    参数说明

    • pid 对应jvm的进程id
    • executable core 产生core dump文件
    • [server-id@]remote server IP or hostname 远程的ip或者hostname,server-id标记服务的唯一性id

    option

    • no option 输出全部的参数和系统属性
    • -flag name 输出对应名称的参数
    • -flag [+|-]name 开启或者关闭对应名称的参数
    • -flag name=value 设定对应名称的参数
    • -flags 输出全部的参数
    • -sysprops 输出系统属性

    Javacore 概述

    Javacore,也可以称为“threaddump”或是“javadump”,它是 Java 提供的一种诊断特性,能够提供一份可读的当前运行的 JVM 中线程使用情况的快照。即在某个特定时刻,JVM 中有哪些线程在运行,每个线程执行到哪一个类,哪一个方法。
    应用程序如果出现不可恢复的错误或是内存泄露,就会自动触发 Javacore 的生成。

    示例一: no option

    命令:jinfo pid
    描述:输出当前 jvm 进程的全部参数和系统属性  

     

    (****经验证,对rcm进行验证,报错,进程死掉***) 

    示例二: -flag name

    查看虚拟机某个参数的状态 -:关闭状态  + :开启状态

    guchunchaodeMacBook-Air:workspaces guchunchao$ jps
    6112 Bootstrap
    354 
    1369 
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag UseSerialGC 6112
    -XX:-UseSerialGC
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag UseG1GC 6112
    -XX:-UseG1GC
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag UseParallelGC 6112
    -XX:+UseParallelGC

     使用该命令,可以查看指定的 jvm 参数的值。如:查看当前 jvm 进程是否开启打印 GC 日志。

    示例三:-flag [+|-]name

    命令:jinfo -flag [+|-]name pid
    描述:开启或者关闭对应名称的参数

    使用 jinfo 可以在不重启虚拟机的情况下,可以动态的修改 jvm 的参数。尤其在线上的环境特别有用。

    使用如下:

    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag PrintGCDetails 6112
    -XX:+PrintGCDetails
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag -PrintGCDetails 6112
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag PrintGCDetails 6112
    -XX:-PrintGCDetails
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag +PrintGCDetails 6112
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag PrintGCDetails 6112
    -XX:+PrintGCDetails

    示例四:-flag name=value

    命令:jinfo -flag name=value pid
    描述:修改指定参数的值。

    同示例三,但示例三主要是针对 boolean 值的参数设置的。
    如果是设置 value值,则需要使用 name=value 的形式。

    使用如下:

    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag MaxHeapFreeRatio 6112
    -XX:MaxHeapFreeRatio=100
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag MaxHeapFreeRatio=80 6112
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag MaxHeapFreeRatio 6112
    -XX:MaxHeapFreeRatio=80

    并不是所有的参数都支持动态修改:
    guchunchaodeMacBook-Air:workspaces guchunchao$ jinfo -flag SurvivorRatio=7 6112
    Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'SurvivorRatio' cannot be changed
    
        at sun.tools.attach.BsdVirtualMachine.execute(BsdVirtualMachine.java:213)
        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)

      

    示例五: -flags

    命令:jinfo -flags pid
    描述:输出全部的参数

    其中,Command line是在启动java进程时写的命令行

    (****经验证,对rcm进行验证,报错,进程死掉***)

    示例六:-sysprops

    命令:jinfo -sysprops pid
    描述:输出当前 jvm 进行的全部的系统属性

     

    (****经验证,对rcm进行验证,报错,进程死掉***)

  • 相关阅读:
    2020年-测试流程学习
    Jmeter接口测试2020(1)
    elk
    redis
    RabbitMQ
    memcache集群
    mysql安装
    mysql从的配置文件
    memcache
    keepalived
  • 原文地址:https://www.cnblogs.com/guchunchao/p/10531146.html
Copyright © 2011-2022 走看看