Jdk自带性能查看工具

时间:2022-05-05 14:06:07

一、jps命令:查看java进程

无参数,列出所有进程

-q 只列出pid

-m 列出传递给main方法的参数

-l 输出程序main class完整package名, 或jar文件完整路径名

-v 传递给JVM的参数

Jdk自带性能查看工具

Jdk自带性能查看工具

 

二、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,阻塞状态,表示线程由于某些原因被阻塞。

线程的调用栈信息。

线程的当前调用栈。

Jdk自带性能查看工具

 

三、jstat命令

详细查看堆内各个部分的使用量,以及加载类的数量,也即对java应用程序的资源和性能进行实时监控,包括历练机会瘦状况和Heap的大小监控等。

jstat -gc pid

查看gc次数

jstat -gccapacity pid

各代所占空间

jstat -gcutil pid

各代空间使用情况

JVM内存结构图

Jdk自带性能查看工具

-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 ] [server-id@]remote-hostname-or-IP

五、jinfo命令

jinfo可以输出并修改运行时的java 进程的opts。

用处比较简单,用于输出JAVA系统参数及命令行参数。

九、jdb命令

用来对core文件和正在运行的Java进程进行实时地调试.