Java自带的JVM工具使用记录
背景
JDK自带一些很好用的工具,包括:jps, jinfo, jvisualvm, jstat, jstack, jcmd
以上几种工具的基本使用可以见如下:
工具 | 类型 | 作用 |
jps | 命令行 |
查看jvm进程,看当下有多少个进行在运行中 |
jinfo | 命令行 |
看具体某一进程的各种配置信息(包括这个进程的一些启动参数,和很多其它的信息。。。) 记录下下,在Mac下 jinfo pid 这个指令是有问题的,会报一个Can't attach to the process. Could be caused by an incorrect pid or lack of privileges的错误,据说是jdk8 在 mac 下的一个bug什么 的。很多人说换到jdk11就好了。所以切换到jdk11试一下。(确实,JDK8在mac下有坑,换11就好了) |
jvisualvm | 可视化界面 | 在cmd / iterms 命令行输入 jvisualvm 即可打开这个图开界面,然后就能选中对应的进程,去看该进程的具体参数,和一些cpu, 内存,类,线程,等。也可以抓取cpu & 内存快照,可以导出,可以快照对比等。 |
jconsole | 可视化界面 | |
jstat | 命令行 | |
jstack | 命令行 | |
jcmd | 命令行 | |
jmap | 命令行 | |
详解(也不是很详)
JPS:
没什么好看的,就进程pid可以的一下
jinfo:
这个还可以,看到的东西比较多,特别在是看一些启动参数,jvm参数什么的,就很方便
jvisualvm
在overview 这里,也是可以看到启动参数,java版本,JVM参数等等
监控:可以看到 cpu, 内存, 线程, 类 的一些图,也可以记录快照
JSONSOLE
整体来说,和 jvisualVM 差不太多
jstat