JVM 工具
1. 基础故障处理工具
1.1 jps(虚拟机进程状况工具)
jps的功能与UNIX中的ps 命令类似。
可以列出正在运行的虚拟机进程,并显式虚拟机指向主类(main函数所在的类)名称以及这些进程在本地虚拟机唯一ID。
命令格式
jps [options] [hostid]
jps还可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,参数hostid为RMI注册表中注册的主机名。
| 选项 | 作用 |
|---|---|
| -q | 只输出java在本地虚拟机的唯一id |
| -m | 输出虚拟机进程启动时传递给主类main()函数的参数 |
| -l | 输出主类的全名,如果进程执行的是Jar包,输入Jar路径 |
| -v | 输出虚拟机进程启动时JVM参数 |
示例

1.2 Jstat(虚拟机统计信息监视工具)
Jstat用于监视虚拟机各种运行状态信息。可以显式虚拟机进程中的类加载、内存、垃圾回收,即时编译等运行数据。
命令格式
jstat [ option vmid [ interval [ s | ms ] [ count ]]]
如果是本地虚拟机进程,VMID则为jps查出的进程对应的id。
如果是远程虚拟机进程,那么VMID的格式应是:[protocol:] [//] lvmid [@hostname [:port]/servername]
interval 和 count 代表查询间隔和次数,如果省略,则说明只查询一次。
option代表用户查询虚拟机的信息,主要分为类装载、垃圾收集、运行期编译状况。
| 选项 | 作用 |
|---|---|
| -class | 监视类装载、装载数量、总空间及类装载耗费时间 |
| -gc | 监视Java堆状况,包括Eden区,两个sruvivor区、老年代、永久代等容量、医用空间、GC时间合计 |
| -gccapacity | 监视内容与-gc基本相同,但输出主要关注Java堆各个取余使用的最大、最小空间 |
| -gcutil | 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
| -gccause | -gcutil功能一样,但是会额外输出导致上一次GC产生的原因 |
| -gcnew | 监视新生代GC状况 |
| -gcnewcapacity | 监视内存与-gcnew基本相同,输出主要关注使用到的最大、最小空间 |
| -gcold | 监视老生代GC状况 |
| -gcoldcapacity | 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间 |
| -gcpermcapacity | 输出永久代使用的最大、最小空间 |
| -comiler | 输出JIT编译器编译过的方法、耗时等信息 |
| -printcompilation | 输入已经被JIT编译的方法 |
示例

E:新生代Eden区,使用了8.01%空间
S0、S1:表示两个Survivor区
O:老年代
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
1.3 jinfo(Java 配置信息工具)
jinfo的作用是实时查看和调整虚拟机各项参数。
命令格式
jinfo [option] pid
| 选项 | 作用 |
|---|---|
| no option | 输出全部的参数和系统属性 |
| -flag name | 输出对应名称的参数 |
| -flag [+|-] name | 开启或者关闭对应名称的参数 |
| -flags | 输出全部的参数 |
| -sysprops | 输出系统属性 |
示例

1.4 jmap(Java 内存映像工具)
jmap最主要的作用是获取对转储快照,除此之外,还可以查询finalize执行队列、Java堆和方法区的详细信息,如空间使用率,当前用到是哪种收集器。
命令格式
jmap [option] vmid
| 选项 | 作用 |
|---|---|
| -dump | 生成 Java 堆转储快照。格式为 -dump:[live,]format=b,file=<filename>,其中 live子参数说明是否只dump出存活的对象 |
| -finalizerinfo | 显示在F-Queue队列等待Finalizer线程执行finalize方法的对象 |
| -heap | 显示Java堆详细信息 |
| histo[:live] | 显示堆中对象的统计信息 |
| F | 当-dump没有响应时,使用-dump或者-histo参数,在这个模式下,live子参数无效. |

最低0.47元/天 解锁文章
1579

被折叠的 条评论
为什么被折叠?



