JDK命令行工具
jps(JVM Proccess Status Tool)
- 显示指定系统内所有HotSpot虚拟机进程
- 参数
- 收集HotSpot虚拟机各方面的运行数据
命令格式:
1
jstat [option vmid [interval[s|ms] [count]]
- option:用户想要查询的虚拟机信息
- -class 监视类装载、卸载数量、总空间及类装载耗时
- -gc 监控Java堆状况,包括eden、survivor、老年代、永久代等容量、已用空间、GC时间合计等信息
- -gccapacity 与-gc差不多,但输出主要关注Java堆各个区域使用到的最大、最小空间
- -gcutil 与-gc差不多,但输出主要关注已使用空间占总空间的百分比
- -gccause 与-gcutil一样,但是会多输出导致上次GC的原因
- -gcnew 监视新生代GC状况
- -gcnewcapacity 与-gcnew差不多,但输出主要关注使用到的最大、最小空间
- -gcold 监视老年代GC装快
- -gcoldcapacity 与-gcold差不多,但输出主要关注使用到的最大、最小空间
- -gcpermcapacity 输出永久代使用到的最大、最小空间
- -compiler 输出JIT编译过的方法、耗时等信息
- -printcompilation 输出已经被JIT编译的方法
VMID和LVMID的区别:如果是本地则两个一样;如果是远程虚拟机,则VMID为:
1
[protocol:][//lvmid[@hostname[:port]/servername]
例:假如每250ms查询一次进程2764的垃圾收集情况,一共查询20次,命令为:
1
jstat -gc 2764 250 20
- option:用户想要查询的虚拟机信息
jinfo(Configuration Info for Java)
- 显示虚拟机配置信息
- 格式
1
jinfo [option] pid
jmap(Memory Map for Java)
- 生成虚拟机的内存存储快照(heapdump文件)
命令格式
1
jmap [option] pid
option参数
- -dump 生成Java堆转储快照,格式为:-dump:[live,]format=b,file=
,其中live子参数说明是否只dump出存活的对象 - -finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法,只在linux/Solaris平台下有效
- -heap 显示Java堆详细信息,只在linux/Solaris平台下有效
- -histo 显示堆中对象统计信息, 包括类、实例数量、合计容量
- -permstat 以ClassLoader为统计口径显示永久代内存状态。只在linux/Solaris平台下有效
- -F 当虚拟机进程对-dump选项没有响应时,可以使用这个强制生成。只在linux/Solaris平台下有效
jhat(JVM Heap Dump Browser)
- -dump 生成Java堆转储快照,格式为:-dump:[live,]format=b,file=
- 用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以再浏览器上查看分析结果(耗时长,不推荐使用)
jstack(Stack Trace for Java)
- 显示虚拟机线程快照
命令格式
1
jstack [option] vmid
option 参数: