Jvm --- 常用工具

jps:虚拟机进程状况工具

JVM Process Status Tool。

可以列出所有目前正在运行虚拟机的进程。

jps -l

详细参数:

  • -q 输出LVMID,省略主类名称
  • -m 输出虚拟机进程启动时传递给Main函数的参数
  • -l 输出主类的全名,如果进程执行的是jar包,输出jar路径
  • -v 输出虚拟机进程启动时 JVM的参数

jstat:虚拟机统计信息监视工具

JVM statistics Monitoring Tool

jstat是用来监视虚拟机各种运行状态信息的命令工具。使用的格式是:

jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]

参数interval和count代表查询的时间间隔查询次数

注:对于这个vmid在本地是一致的,如果在远程主机上面,这个格式应该是:

[ protocol: ] [ // ] lvmid [ @hostname ] [ : port ] /servername

jinfo:Java配置信息

Configurations Info for Java

jinfo [ options ] pid

jinfo的作用是实时地查看和调整虚拟机的各项参数。

jmap: Java内存映像工具

Memory Map for Java

jmap可以生成堆转储快照(一般是headump或dump文件),查询finallize执行队列、Java堆和永久代的详细信息,比如空间使用率、当前使用哪种收集器等等。

jmap [ options ] vmid

主要参数:

  • -dump 生成Java堆转储快照。
  • -heap 显示Java堆的详细信息,比如使用了哪种回收器,参数配置,分代状况等等。
  • -histo 显示堆中对象的统计信息。
  • -permstat 以ClassLoader为统计口径显示永久代内存状态。
  • -F 强制生成dump快照

jstack:Java堆栈跟踪工具

Stack Track for Java

该命令用于生成虚拟机当前时刻的线程快照。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。

命令格式:

jstack [ options ] vmid

选项:

  • -F 当正常输出的请求不被响应时,强制线程堆栈
  • -l 除了堆栈外,显示关于锁的附加信息
  • -m 如果调用到本地方法的话,会显示C/C++的堆栈
原文地址:https://www.cnblogs.com/whthomas/p/jvm-tools.html