java常用命令(一)jps、jstat

jps、jstat是jvm監(jiān)控工具。除Windows 98和Windows ME外,所有平臺都支持這些工具。

jps - jvm進程狀態(tài)工具

jps命令的功能是列出目標系統(tǒng)上已檢測到的HotSpot Java虛擬機。

C:\Users\qzvao>jps -help
usage: jps [-help]
       jps [-q] [-mlvV] [<hostid>]

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

通過jps -help可知,jps共有5個可選命令行選項。

-q 列出僅包含進程id的jvm列表

C:\Users\qzvao>jps -q
6880
16468
18908

-m 列出包含jvm進程id,main方法所在類名,main方法參數(shù)的jvm列表

C:\Users\qzvao>jps -m
16468 Launcher D:/ide/idea/lib/jgoodies-forms.jar;D:/ide/idea/lib/asm-all.jar;D:/ide/idea/lib/snappy-in-java-0.5.1.jar;D:/ide/idea/lib/jps-builders-6.jar;D:/ide/idea/lib/jna-platform.jar;D:/ide/idea/lib/maven-aether-provider-3.3.9-all.jar;D:/ide/idea/lib/resources_en.jar;D:/ide/idea/lib/forms_rt.jar;D:/ide/idea/lib/guava-21.0.jar;D:/ide/idea/lib/jna.jar;D:/ide/idea/lib/httpcore-4.4.5.jar;D:/ide/idea/lib/oromatcher.jar;D:/ide/idea/lib/javac2.jar;D:/ide/idea/lib/httpclient-4.5.2.jar;D:/ide/idea/lib/util.jar;D:/ide/idea/lib/log4j.jar;D:/ide/idea/lib/trove4j.jar;D:/ide/idea/lib/openapi.jar;D:/ide/idea/lib/annotations.jar;D:/ide/idea/lib/jdom.jar;D:/ide/idea/lib/jps-model.jar;D:/ide/idea/lib/protobuf-java-2.5.0.jar;D:/ide/idea/lib/jps-builders.jar;D:/ide/idea/lib/commons-codec-1.9.jar;D:/ide/idea/lib/aether-dependency-resolver.jar;D:/ide/idea/lib/commons-logging-1.2.jar;D:/ide/idea/lib/slf4j-api-1.7.10.jar;D:/ide/idea/lib/aether-1.1.0-all.jar;D:/ide/idea/lib/idea_rt.jar;D:/ide/idea/lib/netty-al
16708 Jps -m

-v 列出包含jvm進程id,main方法所在類名,jvm參數(shù)的jvm列表

C:\Users\qzvao>jps -v
16468 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=D:/ideaProjects/bonc/carbon-apimgt -Dpreload.config.path=C:/Users/qzvao/.IntelliJIdea2017.3/config/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=-5202155218272748285 -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2017.3 -Didea.home.path=D:\ide\idea -Didea.config.path=C:\Users\qzvao\.IntelliJIdea2017.3\config -Didea.plugins.path=C:\Users\qzvao\.IntelliJIdea2017.3\config\plugins -Djps.log.dir=C:/Users/qzvao/.IntelliJIdea2017.3/system/log/build-log -Djps.fallback.jdk.home=D:/ide/idea/jre64 -Djps.fallback.jdk.version=1.8.0_152-release -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/qzvao/.IntelliJIdea2017.3/system/compile-server/carbon-apimgt_789ae554/_temp_ -Djps.backward.ref.index.builder=true
11740 Jps -Denv.class.path=.;D:\sdk\jdk\jdk1.8.0_162\lib -Dapplication.home=D:\sdk\jdk\jdk1.8.0_162 -Xms8m
18908  -Xms2048m -Xmx2048m -XX:ReservedCodeCacheSize=1024m -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dfile.encoding=UTF-8 -Djb.vmOptionsFile=D:\ide\idea\bin\idea64.exe.vmoptions -Xbootclasspath/a:D:\ide\idea\lib\boot.jar -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2017.3 -XX:ErrorFile=C:\Users\qzvao\java_error_in_idea_%p.log -XX:HeapDumpPath=C:\Users\qzvao\java_error_in_idea.hprof

-V 列出包含jvm進程id,main方法所在類名的jvm列表

C:\Users\qzvao>jps -V
16468 Launcher
7700 Jps

-l 列出包含jvm進程id,main方法所在類全限定類名的jvm列表

C:\Users\qzvao>jps -l
19248 sun.tools.jps.Jps
16468 org.jetbrains.jps.cmdline.Launcher

jstat - JVM統(tǒng)計監(jiān)控工具

jstat命令列出已檢測到的Java HotSpot VM的性能統(tǒng)計信息

命令格式

C:\Users\qzvao>jstat -class -h3 -t 16468 1000 8
Timestamp       Loaded  Bytes  Unloaded  Bytes     Time
       115285.7   3157  5887.3        0     0.0       2.51
       115286.7   3157  5887.3        0     0.0       2.51
       115287.7   3157  5887.3        0     0.0       2.51
Timestamp       Loaded  Bytes  Unloaded  Bytes     Time
       115288.7   3157  5887.3        0     0.0       2.51
       115289.7   3157  5887.3        0     0.0       2.51
       115290.7   3157  5887.3        0     0.0       2.51
Timestamp       Loaded  Bytes  Unloaded  Bytes     Time
       115291.7   3157  5887.3        0     0.0       2.51
       115292.7   3157  5887.3        0     0.0       2.51

jstat -class -h3 -t 16468 1000 8這條命令的意思是查看類加載器統(tǒng)計信息

  • -class監(jiān)控類加載器統(tǒng)計信息,當然我們還可以監(jiān)控垃圾收集堆統(tǒng)計信息(-gc)等信息。
  • h3選項每三條信息加一個列標題(可選)
  • -t選項是在在首列加一列距離jvm啟動的時間戳(可選)
  • 16468是jvm進程id(必須)
  • 1000是每隔1000毫秒打印一條數(shù)據(jù)(可選,默認打印一條)
  • 8是打印8條數(shù)據(jù)(可選,如果指定了間隔時間,將持續(xù)打印)

-class監(jiān)控類加載器統(tǒng)計信息標題解釋

Timestamp 距離jvm啟動的時間戳

Loaded:已加載的類數(shù)。

Bytes:加載的kB數(shù)。

Unloaded:卸載的類數(shù)。

Bytes:已卸載的Kbytes數(shù)。

Time:執(zhí)行類加載和卸載操作所花費的時間。

其他監(jiān)控統(tǒng)計信息

-compiler Java HotSpot VM即時編譯器統(tǒng)計信息。

-gc 垃圾收集堆統(tǒng)計信息。

-gcutil 垃圾收集統(tǒng)計摘要。

-gccause 此選項顯示與-gcutil選項相同的垃圾回收統(tǒng)計信息摘要,但包括上次垃圾回收事件的原因以及(如果適用)當前垃圾回收事件的原因。除了為-gcutil列出的列之外,此選項還添加以下列。

  • LGCC 上次垃圾收集的原因
  • GCC 當前垃圾收集的原因

-gcnew 新生代垃圾回收統(tǒng)計

-gcnewcapacity 新生代內(nèi)存空間大小統(tǒng)計

-gcold 老年代和元空間(metaspace)垃圾回收統(tǒng)計

-gcoldcapacity 老生代內(nèi)存空間大小統(tǒng)計

-gcmetacapacity 元空間(metaspace)內(nèi)存空間大小統(tǒng)計

-printcompilation Java HotSpot VM編譯方法統(tǒng)計

-gccapacity 內(nèi)存池生成和空間容量。

各個統(tǒng)計信息標題請參考oracle官方文檔

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容