天天看點

JVM性能監控工具 - jps

JPS全稱為Java process Status。通過jps -help能看到jps支援的參數,如下:

[[email protected] ~]# jps  -hlep
illegal argument: -hlep
usage: jps [-help]
       jps [-q] [-mlvV] [<hostid>]

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

系統輸出顯示,可用參數為分别為:q m l v,分别的功能為:

  • -q :僅僅顯示LVMID(local virtual machine id),即本地虛拟機唯一的id。不顯示主類名稱等資訊。
[[email protected] ~]# jps  -q
1896141
456917
3868632
3868479
3869295
3869203
1078937
1077131
439914
1079389
3867557
           
  • -l :輸出應用程式主類的全類名或者如果程序執行的是jar包,則輸出jar的完整路徑。
[[email protected] /]# jps  -l
456917 /data/server/nacos/target/nacos-server.jar
3868632 hht-operation-0.0.1-SNAPSHOT.jar
3868479 hht-courses-0.0.1-SNAPSHOT.jar
3869295 hht-operation-0.0.1-SNAPSHOT.jar
3869203 hht-user-0.0.1-SNAPSHOT.jar
1078937 hht-resource-0.0.1-SNAPSHOT.jar
1077131 hht-admin-0.0.1-SNAPSHOT.war
439914 hht-api-0.0.1-SNAPSHOT.jar
1079389 hht-resource-0.0.1-SNAPSHOT.jar
3867557 hht-async-0.0.1-SNAPSHOT.jar
1896354 sun.tools.jps.Jps
           
  • -m :輸出虛拟機程序啟動時傳遞給主類main的參數(工作中基本沒用到,就自己寫一個小demo)

代碼:

public class TestJVMTools {
    public static void main(String[] args) throws InterruptedException {
        Arrays.stream(args).forEach(System.out::println);
        Thread.sleep(2000000);//為了不讓jvm程序結束,jps工具能檢視到程序的情況
    }
}
           

參數設定:(在Program argiments中設定了:1、2、3、4、5)

JVM性能監控工具 - jps

jps -m輸出效果:

C:\Users\lenovo>jps  -m
24872 Jps -m
12460 TestJVMTools 1 2 3 4 5
           
  • -v  :列出虛拟機程序啟動時的JVM的參數。比如:-Xms20m -Xmx50m -Xmn10m是JVM啟動時指定的JVM參數:

這裡主要指定了JVM啟動時輸出堆記憶體和最大堆記憶體的大小,還有就是端口号

[[email protected] /]# jps -v
456917 nacos-server.jar -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/jvm/java/jdk1.8.0_11/jre/lib/ext:/usr/jvm/java/jdk1.8.0_11/lib/ext -Xloggc:/data/server/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/data/server/nacos/plugins/health,/data/server/nacos/plugins/cmdb -Dnacos.home=/data/server/nacos
3868632 jar -Xms512m -Xmx1024m -Dserver.port=12001
3868479 jar -Xms512m -Xmx1024m -Dserver.port=19001
3869295 jar -Xms512m -Xmx1024m -Dserver.port=12002
1897754 Jps -Denv.class.path=.:/usr/jvm/java/jdk1.8.0_11/jre/lib/ext:/usr/jvm/java/jdk1.8.0_11/lib/tools.jar -Dapplication.home=/usr/jvm/java/jdk1.8.0_11 -Xms8m
3869203 jar -Xms512m -Xmx1024m -Dserver.port=14001
1078937 jar -Xms512m -Xmx2048m -Dserver.port=13001
1077131 war -Xms512m -Xmx2048m -Dserver.port=11001
439914 jar -Xms512m -Xmx1024m -Dserver.port=15001 -Dspring.cloud.sentinel.transport.client-ip=47.99.109.141
1079389 jar -Xms512m -Xmx2048m -Dserver.port=13002
3867557 jar -Xms512m -Xmx2048m -Dserver.port=18001
           

說明:

  • 以上參數可以綜合使用,兩個或者多個參數一起使用
  • 如果某個Java程序預設關閉了UsePerfData參數(使用參數-XX:-UsePerfData),那麼jps指令将無法探知到該Java程序