Java程序分析工具
- jps:列出正在运行的虚拟机进程,并显示虚拟机的执行主类;
- jstat:先jps定位具体的进程,然后可以监视虚拟机的各种运行状态信息,如类加载、内存、GC、即时编译等;
// 每250毫秒查询一次进程2701的垃圾回收状况,共计20次
jstat -gc 2701 250 20
- jinfo:实时查看和调整虚拟机的各项参数;
// 查询CMS这个参数的值
jinfo -flag CMSInitialFraction 2701
- jmap:用于生成堆转储快照文件(也可以设置虚拟机参数在OOM时自动生成);
- jhat:与jmap配合使用,用来分析转储文件,不过比较耗时,一般不推荐在生产机器上查看;可以在浏览器查看分析结果;
- jstack:用于生成虚拟机当前时刻的线程快照。线程快照就是每一条线程正在执行的方法堆栈集合,生成线程快照的目的通常是定位线程长时间卡顿的原因,例如死锁、死循环、请求外部资源时间过长导致挂起等原因。
// 查询该进程的线程堆栈
jstack -l 2701