JVM调优-常用jvm命令、意义及用法

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

JVM调优-常用jvm命令、意义及用法_第1张图片

(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

例:
JVM调优-常用jvm命令、意义及用法_第2张图片

(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

例:
JVM调优-常用jvm命令、意义及用法_第3张图片

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

JVM调优-常用jvm命令、意义及用法_第4张图片

(3)dump出堆内存相关信息

用法:

jmap -dump:format=b,file=heap.hprof PID

例:

// 文件名要以.hprof结尾,后面的章节会讲使用MAT工具进行堆内存分析,其要求为.hprof文件
jmap -dump:format=b,file=heap.hprof 44808

JVM调优-常用jvm命令、意义及用法_第5张图片

(4) 堆内存溢出的时候,自动dump堆内存文件

JVM中为我们准备了这样的功能,启动JVM时,加上以下参数就可以在发生内存溢出时,自动dump出改文件。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof

(5)dump文件分析

会在后续为大家演示MAT工具的使用

你可能感兴趣的:(JVM,jvm)