简述
在解决一个问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。
jps
jps
绝对是使用最高频的工具,它可以列出正在运行的Java进程显示它们的PID,PID是使用其他工具的一个重要参数。命令格式如下:
jps [options]
jstat
通过jstat命令了我们可以监控本地或者远程的Java进程的类加载、JVM内存区域的使用情况等运行数据。命令格式:
jstat [options] [pid] [interval ms] [count]
- interval ms:多久执行一次。
- count:最高执行次数。
比如以下命令可以解释为,每250查看一次PID为15299进程的垃圾回收情况,一共执行20次。
jstat -gc 15299 250 20
jinfo
jinfo命令可以实时查看和调整虚拟机的各个参数。
可以在运行期间修改一部分可修改的虚拟机参数:
jinfo -flag name = value
jmap
jmap可以用来生成堆转储快照(dump文件),当然不仅仅是用来生成堆转储快照,它也可以查询finalize队列、堆和方法区的详细信息,如空间使用率,用了什么垃圾收集器等。命令格式:
jmap [options] pid
jstack
jstack可以用来生成虚拟机当前时刻的线程快照,线程快照可以用来排查线程长时间停顿的问题,如死锁,死循环,长时间挂起等,通过分析线程快照我们最终可以确定一个线程在后台做了什么,或者等待着什么。命令格式:
jstack [options] pid