一、jps命令:查看java进程
无参数,列出所有进程
-q 只列出pid
-m 列出传递给main方法的参数
-l 输出程序main class完整package名, 或jar文件完整路径名
-v 传递给JVM的参数
二、jstack命令
作用:打印出给定的java进程ID或core file 或远程调试服务的Java堆栈信息。
1)如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
2)jstack可以dump下某个java程序,并且查看运行状态和堆栈信息。
-F当’jstack [-l] pid’没有响应的时候强制打印栈信息
-l长列表. 打印关于锁的附加信息,例如属于
java.util.concurrent的ownable synchronizers列表.
-m打印java和native 框架的所有栈信息.
-h | -help打印帮助信息
jstack -F -l pid输出死锁相关信息如下:
死锁状态:No deadlocks found.
线程号:27150
线程状态:BLOCKED,阻塞状态,表示线程由于某些原因被阻塞。
线程的调用栈信息。
线程的当前调用栈。
三、jstat命令
详细查看堆内各个部分的使用量,以及加载类的数量,也即对java应用程序的资源和性能进行实时监控,包括历练机会瘦状况和Heap的大小监控等。
jstat -gc pid
查看gc次数
jstat -gccapacity pid
各代所占空间
jstat -gcutil pid
各代空间使用情况
JVM内存结构图
-gcnew -gcnewcapacity 年轻代gc情况,年轻代容量
-gcold -gcoldcapacity -gcpermcapacity -class 显示加载class的数量,及所占空间等信息
-compiler 显示JVM实时编译的数量等信息
-printcompilation 当前JVM执行的信息
四、jmap命令
打印出某个java进程(使用pid)内存内的 所有‘对象’的情况(如:产生那些对象,及 其数量)。可以从core文件或进程中取得内存的具体配置情况,包括Heap Size、Perm Size等。
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [[email protected]]remote-hostname-or-IP
五、jinfo命令
jinfo可以输出并修改运行时的java 进程的opts。
用处比较简单,用于输出JAVA系统参数及命令行参数。
九、jdb命令
用来对core文件和正在运行的Java进程进行实时地调试.