1. sun jdk监控和故障处理工具
序号 | 名称 | 主要作用 |
---|---|---|
1 | jps | jvm process status tool显示指定系统内所有的hotspot虚拟机进程 |
2 | jstat | jvm statistics monitoring tools 用于收集hotspot虚拟机各方面的运行数据 |
3 | jinfo | configuration info for java 虚拟机配置信息 |
4 | jmap | memory map for java 生成虚拟机的内存快照(heap dump文件) |
5 | jhat | jvm heap dump browser 用于分析heap dump文件 它会建立一个http/html 服务器让用户在浏览器上查看分析结果 |
6 | jstack | stack strace for java 显示虚拟机的线程快照 |
2.jps:虚拟机进程状况工具
可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称
jps工具主要选项
序号 | 选项 | 作用 |
---|---|---|
1 | -q | 只输出 LVMID 省略主类的名称 |
2 | -m | 输出虚拟机进程启动时传递给主类main()函数的参数 |
3 | -l | 输出主类的全名如果执行的是jar包,则是jar包的路径 |
4 | -v | 输出虚拟机进程启动时jvm参数 |
例子如下:
C:\Program Files\Java\jdk-9\bin>jps -l
5428 jdk.jcmd/sun.tools.jps.Jps
6420 org.jetbrains.idea.maven.server.RemoteMavenServer
2824 org.jetbrains.jps.cmdline.Launcher
8408 com.intellij.rt.execution.application.AppMain
4156
C:\Program Files\Java\jdk-9\bin>jps -v
6420 RemoteMavenServer -Djava.awt.headless=true -Didea.version==2016.1.1 -Xmx512
m -Didea.maven.embedder.version=3.0.5 -Dfile.encoding=UTF-8
2824 Launcher -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.co
mpiler.useSingleThread=true -Dpreload.project.path=F:/ideaWorkspace/2019-03 -Dpr
eload.config.path=C:/Users/Administrator/.IntelliJIdea2016.1/config/options -Dco
mpile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4St
ack=true -Dio.netty.initialSeedUniquifier=3194255576438154988 -Dfile.encoding=UT
F-8 -Djps.file.types.component.name=FileTypeManager -Duser.language=zh -Duser.co
untry=CN -Didea.paths.selector=IntelliJIdea2016.1 -Didea.home.path=C:\Program Fi
les (x86)\JetBrains\IntelliJ IDEA 2016.1.1 -Didea.config.path=C:\Users\Administr
ator\.IntelliJIdea2016.1\config -Didea.plugins.path=C:\Users\Administrator\.Inte
lliJIdea2016.1\config\plugins -Djps.log.dir=C:/Users/Administrator/.IntelliJIdea
2016.1/system/log/build-log -Djava.io.tmpdir=C:/Users/Administrator/.IntelliJIde
a2016.1/system/compile-server/_temp_ -Dkotlin.daemon.enabled -Dkotlin.daemon.cli
ent.alive.path="C:\Users\ADMINI~1\AppData\Local\Temp\kotlin-idea-8725806679794
8408 AppMain -ea -Dapp.id=ehealth-appoint -Denv=DEV -Dapollo.cluster=default -Di
dea.launcher.port=7535 -Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains
\IntelliJ IDEA 2016.1.1\bin -Didea.junit.sm_runner -Dfile.encoding=UTF-8
1580 Jps -Denv.class.path=.;C:\Program Files\Java\jdk-9\lib;C:\Program Files\Jav
a\jre-9\lib; -Dapplication.home=C:\Program Files\Java\jdk-9 -Xms8m -Djdk.module.
main=jdk.jcmd
4156 -Xms128m -Xmx512m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=240m -XX:
+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=f
alse -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitSt
ackTraceInFastThrow -Dfile.encoding=UTF-8 -Djb.vmOptionsFile=C:\Program Files (x
86)\JetBrains\IntelliJ IDEA 2016.1.1\bin\idea.exe.vmoptions -Xbootclasspath/a:C:
\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.1.1\lib\boot.jar -Didea.paths.
selector=IntelliJIdea2016.1 -Didea.jre.check=true
jstat :虚拟机统计信息监视工具
用于运行虚拟机各种运行状态信息的命令行工具,它可以显示本地或者远程虚拟机进程中的类装载,内存,垃圾回收,JIT编译等运行数据;是纯文本控制台环境的服务器上,它是运行期定位虚拟机性能的首选工具
jstat 命令格式
jstat [option vmid [interval[s|ms] [count]] ]
其中 interval 和count 表示查询间隔和次数,如果省略这两个参数 表明只能查询一次
jstat 工具主要选项
其中S0C,S1C表示 堆中 Survivor 区中的0和1区的容量
S0U,S1U表示 已使用的量
EC,EU EC表示 Eden区的容量和已经使用过的量
OC,OU 老生代的容量和已经使用过得量
MC,MU 方法区容量和方法区已经使用的量
CCSC,CCSU 压缩类容量和使用情况
YGC YGCT 年轻代回收次数和回收时间
FGC FGCT 老年代回收次数和回收时间
GCT 总GC回收的时间
jinfo java配置信息工具
命令格式:jinfo {-option} pid
jmap java内存映像工具
jmap用于生成堆存储快照,生成文件为heapdump 或者dump 或者
-XX:+HeapDumpOnOutOfMemoryError 出现oom异常自动生成dump文件
-XX:+HeapDumpOnCtrlBreak 使用ctrl+break键让虚拟机生成dump文件
jmap不仅可以生成dump文件还可以 查看finalize执行队列 java堆和永久代的详细信息
jmap命令格式:
jmap [-option] vmid
jhat 虚拟机堆转储快照分析工具
jhat命令与jmap搭配使用,分析生成jmap的堆存储