天天看點

JVM監控工具-jps

jps功能

顯示目标機器(

本機

或者

遠端

)上的java程序。

用法

# 檢視指令使用方式
[[email protected] ~]# jps -help
usage: jps [-help]
       jps [-q] [-mlvV] [<hostid>]

Definitions:
    <hostid>:      <hostname>[:<port>]
           

參數說明

參數 含義
-q 隻顯示本地虛拟機辨別符

lvmid

(local JVM identifiers)
-m 顯示傳遞給

main

方法的參數
-l 顯示應用程式主類的

包名

或者jar的

全路徑

-v 顯示傳遞給虛拟機的參數
-V 官方文檔介紹與-q參數功能一緻,

實測沒卵用

,可能是我打開方式不對,記得留言我
hostid 當目标機器是

遠端機器

時使用,用于辨別遠端機器

指令輸出格式

lvmid [ [ classname | JARfilename | “Unknown”] [ arg* ] [ jvmarg* ] ]

實戰一波

實戰環境:

環境 描述
虛拟機作業系統 CentOS Linux release 7.6.1810 (Core)
虛拟機IP 192.168.1.14
虛拟機java openjdk version “1.8.0_232”
虛拟機使用者 root

啟動被監控Java程序

# 檢視目前目錄
[[email protected] ~]# pwd
/root
# 在/root下建立tech/nosql檔案夾
[[email protected] ~]# mkdir -vp tech/nosql
mkdir: 已建立目錄 "tech"
mkdir: 已建立目錄 "tech/nosql"
# 建立測試用java檔案:Hello.java
cat > tech/nosql/Hello.java <<EOF
package tech.nosql;

public class Hello {
    public static void main(String[] args) {
        for (int j = 0; j < Integer.MAX_VALUE; j++) {
            try {
                Thread.sleep(1000);
                System.out.println("j = " + j);
            } catch (InterruptedException e) {
                System.out.println("error");
            }
        }
    }
}
EOF
# 編譯Hello.java
[[email protected] ~]# javac tech/nosql/Hello.java
# 運作Hello,傳入虛拟機參數-Xms100m,給main方法傳入arg1,arg2兩個參數
[[email protected] ~]# java -Xms100m tech/nosql/Hello arg1 arg2
j = 0
j = 1
.....

           

jps實戰

# 直接輸入jps,預設輸出格式:lvmid  [ classname | JARfilename | "Unknown"] 
[[email protected] ~]# jps
17073 Hello
17189 Jps
# -q: 隻顯示lvmid
[[email protected] ~]# jps -q
17073
17395
# -m:顯示傳遞給main方法的參數,成功顯示arg1,arg2
[[email protected] ~]# jps -m
17073 Hello arg1 arg2
17487 Jps -m
# -l:顯示應用程式主類的包名或者jar的全路徑,此時顯示了Hello類的包名
[[email protected] ~]# jps -l
17073 tech/nosql/Hello
17541 sun.tools.jps.Jps
# -v:顯示傳遞給虛拟機的參數,顯示了傳遞給虛拟機的-Xms100m
[[email protected] ~]# jps -v
17073 Hello -Xms100m
17621 Jps -Dapplication.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 -Xms8m
# -V:官方文檔介紹與-q參數功能一緻,實測沒卵用
[[email protected] ~]# jps -V
17073 Hello
17716 Jps
# -mlv:顯示全部資訊,格式:lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
[[email protected] ~]# jps -mlv
17073 tech/nosql/Hello arg1 arg2 -Xms100m
17852 sun.tools.jps.Jps -mlv -Dapplication.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 -Xms8m
           

參考位址

JDK13-tools: https://docs.oracle.com/en/java/javase/13/docs/specs/man/index.html

JDK13-jps: https://docs.oracle.com/en/java/javase/13/docs/specs/man/jps.html

JDK8-tools:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/

JDK8-jps:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html#CHDCGECD