jdk的安装目录bin下面有关于jvm的许多工具,如jps,jstat,jstack,jcmd等等,我们可以灵活的运用它们来管理jvm。
jps
jps主要是用来查找java进程。主要有3个参数: -l 输出应用程序主类完整package名称或jar完整名称 -v 列出启动程序指定的jvm参数 -m 输出主函数传入的参数 。某些场景下可以替换 ps -ef |grep java命令。
jstat
jstat是jvm的实时监控的工具。包括类加载信息,及时编译,gc等等。jstat提供如下可选的参数:
其中最主要的是-gc和-gcutil两个参数。
-gc:列出jvm内存堆和gc的信息,其中C代表容量单位kb,S代表幸存区 U代表已使用 O代表老年代
-gcutil:列出jvm的统计信息,相对-gc结果更清晰,使用率用百分比来显示
jstack
jstack pid会打印java进程中线程的轨迹,包括线程id,线程栈,状态等等