-
jps
JVM Process Status Tool是其中典型的jvm工具,除了名字像Unix的ps命令之外,它的功能也和ps命令类似,可以列出正在运行的虚拟机进程,并显示虚拟机正在执行主类(Main Class、main()函数所在的类)名称以及这些进程本地虚拟机唯一id,虽然功能比较单一,但它是使用频率最高的JDK命令工具。
-
jps 查看pid
-
jps -l 展示类的全限定名,如果进程执行的是jar包,则输出jar路径
-
jps -m 展示jvm启动类名
-
jps -m 展示jvm启动参数
-
-
jstat(JVM Statictics Monitoring Tool)是用于监视各种运行状态信息的命令工具,它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GU图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具
-
jstat命令使用:
jstat -gc pid 间隔时间 打印次数
jstat -gc 51020 250 20 每隔250毫秒打印一次,一共20次
S0C 第一个幸存区的大小
S1C 第二个幸存区的大小
S0U 第一个幸存区实际使用的大小
S1C 第二个幸存区实际使用的大小
EC Eden区的大小
EU Eden区实际使用的大小
OC 老年代大小
OU 老年代实际使用的大小
MC 方法区大小
MU 方法区实际使用的大小
CCSC 压缩类空间大小
CCSU 压缩类空间实际使用大小
YGC 年轻代垃圾回收此时
YGCT 年轻代垃圾回收消耗时间
FGC 老年代垃圾回收次数
FGCT 老年代垃圾回收消耗时间
GCT 垃圾回收总消耗时间
-
jinfo(Configuretion Info For Java)的作用是实时的查看和调整虚拟机各项参数。使用jps -v可以查看虚拟机启动时显示指定的参数列表,但如果想知道未被显示指定的参数的系统默认值,除了去找资料外,就只能使用jinfo 的 -flag选项进行查询了。
-
jinfo命令使用
jinfo -flag CMSInititingOccupancyFraction 1444
-
jmap(Memory Map For Java)命令用于生成堆栈存储快照。如果不使用jmap命令,想要获取Java堆栈存储快照,还有一些暴力的手段-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常时生成Dump文件,用于系统复盘。
和info命令一样,jmap有不少功能在Windows平台下时受限的,出了生成dump文件的-dump选项和用于查看每个类的实例、空间占用统计的-histo选项在所有操作系统都提供之外,其余选项都只能在Linux/Solaris下使用。
-
jmap命令使用
jmap -dump 生成Java堆栈存储快照,格式为jmap -dump: format=b,file=
jmap -histo 显示堆中对象统计信息,包括类、实例数量、合计容量(分页查看)
jmap -heap 13388
-
jhat(JVM Heap Analysis Tool)命令常与jmap搭配使用,来分析jmap生成的堆栈存储快照,jhat内置了一个微型的HTTP/HTML服务器,生成Dump文件分析的结果后可以在浏览器中查看(localhost:7000)。
-
jhat特点
- jhat分析工作是一个耗时且耗硬件资源的过程
- jhat的分析功能相对来说比较简陋
-
jhat的使用
jhat 文件名称
-
jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)
-
线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因。如线程死锁、死循环、请求外部资源导致长时间的等待等。线程出现停顿的时候通过jstack来查看各线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源。
-
线上程序一般不能用kill进程pid的方式直接关闭
-
jstack的用法
- jstack -l pid
- jstack -f 当正常输出的请求不被响应时,强制输出线程堆栈force
-
线程状态
- NEW 线程创建
- RUNNABLE 线程.start,执行状态
- BLOCKED 阻塞状态
- WAITING 等待状态,一个正在无限期等待另一个线程执行一个特别动作的线程处于 这一状态
- TIMED_WAITING 正在限时等待另一个线程执行一个动作
- TERMINATED 线程销毁
-
BLOCKED与WAITING状态的区别
WAITING是主动的显示的申请的阻塞,BLOCKED属于被动的阻塞
深入浅出JVM之线上虚拟机工具
最新推荐文章于 2024-05-17 08:54:02 发布