4.2 JVM命令行工具
1.jps(JVM Process Status Tool):JVM进程查看工具,命令行进入到jdk的bin目录下,使用命令:jps -l/-q/-v/-m
2.jstat(JVM Statistics Monitoring Tool):JVM运行状态监视工具,输入的内容全是文本的形式,查看JVM状态的命令:jstat -gc xxxx 250 20(查询xxxx进程ID的虚拟机,每250毫秒查询一次GC的情况,一共查询20次)
jstat 查询出的参数:
①S:Survivor区;②C:总大小;③U:已使用;④E:Eden区;⑤O:老年代内存区;⑥YGC:Minor GC的次数;⑦YGCT:Minor GC耗时(毫秒);⑧FGC:Full GC的次数;
3.jinfo:实时查看和调整虚拟机参数;
4.jmap(Memory Map for Java):Java内存对象映像工具,命令:jmap -histo pid
5.jhat(JVM Heap-Analysis Tool):虚拟机堆转储快照分析工具,一般配合jmap使用,可以在浏览器中查看,不过此工具的功能性并不强大,一般不推荐使用;
6.jstack(JVM Stack Trace for Java):Java堆栈跟踪工具,生成线程快照,可以定位线程出现长时间卡顿的原因,比如:死锁(Deadlock)、死循环、请求外部资源导致的长时间等待(Waiting on condition)、阻塞(Blocked)等,命令:jstack -xx pid
4.3 可视化JVM监控工具
1.JConsole
2.JVisualVM
JConsole和JVisualVM是Java/bin目录自带的两个JVM性能监视工具,VisualVM功能和数据的直观性都要比JConsol强大许多并且还可以装插件,但是JConsole对于堆内存的描述更加详细,包括Eden、Survivor、Old Gen等。