天天看点

JVM常用查看资源命令

一、linux命令

1、top命令

top命令能够实时显示系统中各个进程的资源占用状况,可以从宏观上观察系统各个进程对 CPU 的占用情况以及内存使用情况,各个参数意义如下:

JVM常用查看资源命令
JVM常用查看资源命令

2、sar命令

sar 命令可以周期的对内存和 CPU 使用情况进行采样,基本语法如下:

sar  [options]   [<interval>  <count>]

其中 interval(单位是秒) 和 count 分别表示采样周期和采样数量,options 可以指定 sar 命令对那些数据进行采样,options 选项如下:

JVM常用查看资源命令

3、vmstat 命令

语法是 vmstat  [<interval>  <count>],它可以统计CPU、内存使用情况、swap使用情况等信息,命令输出含义如下:

JVM常用查看资源命令

4、iostat命令

语法是  iostat [<interval>  <count>],可以提供详尽的 I/O 信息,输出参数意义如下:

JVM常用查看资源命令

5、pidstat工具

pidstat 不仅可以监视进程的性能情况,也可以监视线程的性能情况。

1、CPU使用频率监控

要监控程序的 CPU 使用率,先使用 jps 命令找到 java 程序的  PID,然后使用 pidstat 命令输出程序的 CPU 使用情况,命令格式是  pidstat  -p  进程ID  -u (cpu 使用频率)  <interval>  <count>

pidstat 命令也可以监控线程信息,命令格式是  pidstat  -p  进程ID  <interval>  <count>  -u (cpu 使用频率)  -t(将系统性能的监控细化到线程级别)

jstack  -1  进程ID  >/tmp/t.txt  导出指定应用程序的所有线程

2、I/O 使用监控

I/O 监控命令是 pidstat  -p  进程ID  -d(监控对象为磁盘I/O) -t(将系统性能的监控细化到线程级别)  <interval>  <count>  

3、内存监控

内存监控命令是  pidstat  -r(内存监控)   -p   进程ID   <interval>  <count>

二、JDK命令

1、jps命令

jps 命令类似于 ps 命令,但是它只列出系统中所有的 java 应用程序。通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 JVM 参数等信息。

2、jstat 命令

jstat 用于观察 Java 应用程序运行时信息的工具,还可以查看堆信息的详细情况,它的基本使用语法为:

jstat  -<options>   [-t]     [-h<lines>]     [vmid]      [<interval>  <count>]

-t 参数可以在输出信息前加上一个  Timestamp 列,显示程序的运行时间

-h参数可以在周期性数据输出时,输出多少行数据后,跟着输出一个表头信息

interval 参数用于指定输出统计数据的周期,单位是毫秒

count 参数用于指定一共输出多少次数据

选项 options 可以由以下值构成:

JVM常用查看资源命令

3、jinfo 命令

jinfo 可以用来查看正在运行的 java 应用程序的扩展参数,甚至支持在运行时修改部分参数,语法结构如下:

jinfo  <option>  <pid>

其中,options 为以下信息:

JVM常用查看资源命令

4、jstack 命令

jstack 可以导出 java 应用程序的线程堆栈,它能自动进行死锁检查,输出找到的死锁的信息,帮助开发人员解决死锁问题,语法结构如下:

jstack  [-l]  <pid>

-l  用于打印锁的附加信息

jstack  -l   pid  >C:/deadlock.txt

将输出的所有锁信息保存到相应目录的文件中