1、JDK自带命令工具--jstat
查看JVM中各种信息包括内存情况,GC次数等
2、JDK自带命令工具--jmap
生成java堆信息
3、JDK自带命令工具--jstack
生成虚拟机当前时刻线程快照,也就是每一条线程正在执行的方法对栈集合,生成快照的目的是为了定位线程出现长时间停顿或无相应的原因
4、JDK可视化工具--JConsole
可以对内存、线程等信息进行监控,但分析能力较弱
5、JDK可视化工具--Visual VM
除了拥有更强大的监控以外,还具备较强的分析能力,其中Btrace可以远程加入调试代码进行实时调试
6、JDK可视化工具--ZProfile
有很强的数据分析能力,不过有一定的侵入性,影响服务器性能
7、查看JDK版本--java -version
8、查看垃圾收集器--jmap -heap pid
9、查看JVM参数(堆大小)--jinfo -flag pid
默认初始堆大小为物理内存的1/64,上限是物理内存的1/4,为了避免垃圾收集器在最小和最大之间收缩堆,通常把堆的最小值和最大值都设置为物理内存的1/4
10、阿里开源工具(Arthas)
https://github.com/alibaba/arthas