JVM常用命令
1 jps
查看Java进程
2 jinfo
(1) 实时查看和调整JVM配置参数
The jinfo command prints Java configuration information for a specified Java
process or core file or a remote debug server. The configuration information
includes Java system properties and Java Virtual Machine (JVM) command-line
flags.
(2)查看配置参数
用法:jinfo -flag 参数名 PID — 查看某个java进程的属性的值
例:
jinfo -flag MaxHeapSize PID
jinfo -flag UseG1GC PID
(3)JVM配置参数实时修改(参数只有被标记为manageable的flags可以被实时修改)
用法:
// 适用于Boolean类型的参数
jinfo -flag [+|-]name PID
// 使用与非Boolean类型的参数
jinfo -flag name=value PID
// name为参数名
例:
jinfo -flag +UseG1GC 8700
(4)查看曾经覆过值得参数
jinfo -flags PID
3 jstat
(1)实时查看和调整JVM配置参数
The jstat command displays performance statistics for an instrumented Java
HotSpot VM. The target JVM is identified by its virtual machine identifier, or
vmid option.
(2)查看类装载信息
jstat -class PID 1000 10 查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10
次
例:
(3)查看垃圾收集信息
jstat -gc PID 1000 10
例:
4 jstack
(1)查看线程堆栈信息
The jstack command prints Java stack traces of Java threads for a specified Java
process, core file, or remote debug server.
(2)用法
jstack PID
例:
5 jmap
(1)生成堆转储快照
The jmap command prints shared object memory maps or heap memory details of a
specified process, core file, or remote debug server.
(2)打印出堆内存相关信息
// 先设置堆大小固定值为300M
-XX:+PrintFlagsFinal -Xms300M -Xmx300M
// 使用jmap查看堆内存信息
jmap -heap PID
(3)dump出堆内存相关信息
用法:
jmap -dump:format=b,file=heap.hprof PID
例:
// 文件名要以.hprof结尾,后面的章节会讲使用MAT工具进行堆内存分析,其要求为.hprof文件
jmap -dump:format=b,file=heap.hprof 44808
(4) 堆内存溢出的时候,自动dump堆内存文件
JVM中为我们准备了这样的功能,启动JVM时,加上以下参数就可以在发生内存溢出时,自动dump出改文件。
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof
(5)dump文件分析
会在后续为大家演示MAT工具的使用