java常用命令(一)jps、jstat

jps、jstat是jvm监控工具。除Windows 98和Windows ME外,所有平台都支持这些工具。

jps - jvm进程状态工具

jps命令的功能是列出目标系统上已检测到的HotSpot Java虚拟机。

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

Definitions:
    :      [:]

通过jps -help可知,jps共有5个可选命令行选项。

-q 列出仅包含进程id的jvm列表

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

-m 列出包含jvm进程id,main方法所在类名,main方法参数的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参数的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统计监控工具

jstat命令列出已检测到的Java HotSpot VM的性能统计信息

命令格式

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这条命令的意思是查看类加载器统计信息

  • -class监控类加载器统计信息,当然我们还可以监控垃圾收集堆统计信息(-gc)等信息。
  • h3选项每三条信息加一个列标题(可选)
  • -t选项是在在首列加一列距离jvm启动的时间戳(可选)
  • 16468是jvm进程id(必须)
  • 1000是每隔1000毫秒打印一条数据(可选,默认打印一条)
  • 8是打印8条数据(可选,如果指定了间隔时间,将持续打印)

-class监控类加载器统计信息标题解释

Timestamp 距离jvm启动的时间戳

Loaded:已加载的类数。

Bytes:加载的kB数。

Unloaded:卸载的类数。

Bytes:已卸载的Kbytes数。

Time:执行类加载和卸载操作所花费的时间。

其他监控统计信息

-compiler Java HotSpot VM即时编译器统计信息。

-gc 垃圾收集堆统计信息。

-gcutil 垃圾收集统计摘要。

-gccause 此选项显示与-gcutil选项相同的垃圾回收统计信息摘要,但包括上次垃圾回收事件的原因以及(如果适用)当前垃圾回收事件的原因。除了为-gcutil列出的列之外,此选项还添加以下列。

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

-gcnew 新生代垃圾回收统计

-gcnewcapacity 新生代内存空间大小统计

-gcold 老年代和元空间(metaspace)垃圾回收统计

-gcoldcapacity 老生代内存空间大小统计

-gcmetacapacity 元空间(metaspace)内存空间大小统计

-printcompilation Java HotSpot VM编译方法统计

-gccapacity 内存池生成和空间容量。

各个统计信息标题请参考oracle官方文档

你可能感兴趣的:(java常用命令(一)jps、jstat)