监控工具
# jps命令
笔记
查看正在运行的Java进程
# 语法
jps [options]
1
# 参数说明
options参数 | 说明 |
---|---|
-q | 仅仅显示LVMID,即本地虚拟机唯一id,不显示主类的名称 |
-l | 输出应用程序主类的全类名 |
-m | 输出虚拟机进程启动时传递给主类main()的参数 |
-v | 列出虚拟机进程启动的JVM参数 |
# jstat指令
笔记
用于监视虚拟机各种运行状态信息的命令行工具。
# 语法
jstat -<options> [-t] [-h<lines>] <vmid> [<interval>] [<count>]
1
# 参数说明
- interval: 指定输出统计数据的周期,单位为毫秒。即: 查询间隔
- count: 指定查询的总次数
- -t: 在输出信息前加一个Timestamp列,显示程序的运行时间
- -h: 周期性数据输出时,输出多少行数据后给一个表头信息
options参数 | 说明 |
---|---|
-class | 显示ClassLoader的相关信息:类的装载、卸载数量、总空间、类装载所消耗的时间等 |
-gc | 显示与GC相关的堆信息,包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。 |
-gccapacity | 显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间 |
-gcutil | 显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause | 与-gcutil一样,会额外输出导致最后一次或当前GC的原因 |
-gcutil | 显示内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gcnew | 显示新生代GC状况 |
-gcnewcapacity | 显示内容与-gcnew相同,输出使用到最大空间、最小空间 |
-geold | 显示老年代GC状况 |
# jinfo指令
笔记
用于实时查看和修改JVM配置参数
# 语法
- 查看:
- jinfo -flags PID
- jinfo -flag <具体参数(MapHeapSize)> PID
- 修改:
- 针对boolean类型 jinfo -flag [+|-] 具体参数 PID
- 针对非boolean类型 jinfo -flag 具体参数=具体参数值 PID
# jmap指令
笔记
导出内存映像文件&内存使用情况,jmap一方面可以获取dump文件(二进制文件)。 还可以获取目标Java进程的内存信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息
# 语法
- 生成dump文件=>手动方式
- jmap -dump:format=b,file=< filename.hprof> < pid>
- jmap -dump:live,format=b,file=< filename.hprof> < pid>
- 生成dump文件=>自动方式
- -XX:+HeapDumpOnOutOfMemoryError
- -XX:HeapDumpPath=< filename.hprof>
- 显示堆内存相关信息
- jmap -heap pid
- -jmap -histo
# jstack命令
笔记
jstack命令用于生成虚拟机指定进程当前时刻的线程快照。线程快照就是当前虚拟机内指定进程的每一条线程正在执行的方法堆栈的集合
# 语法
jstack [options] pid
1
options参数 | 说明 |
---|---|
-F | 当应用程序无法响应时,可以使用此选项强制执行线程转储 |
-l | 除堆栈外显示关于锁的附加信息 |
-m | 当应用程序无法响应时,可以使用此选项强制执行线程转储 |
-h | 帮助操作 |
编辑 (opens new window)
上次更新: 2023/06/04, 11:11:24