jvm学习——常见查看指令

jvm学习——常见查看指令

Scroll Down

jvm学习

1.jvm的参数类型

1.标准参数:

-help 
-serve -client
-version -showverison
-cp -classpath

2.X参数:

-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式,jvm自己决定是否编译成本地代码

3.XX参数(主要用于jvm调优和Debug)

boolean类型:
格式:-XX:[+-]<name>表示启用或者禁用name属性
非boolean类型:
格式:-XX:<name>=<value>表示启用或者禁用name属性
-Xms 初始化堆内存
-Xmx 最大堆内存

2.查看jvm运行时参数

1. PrintFlagsFinal

查看未启动的java进程的值
image.png

2.jps

专门查看java进程的项目的进程号
jps -l
image.png

3.jinfo

查看启动的进程的参数

查看最大堆内存

jinfo -flag MaxHeapSize 进程号

image.png

jinfo -flags 进程号

image.png
查看垃圾回收器

是否启用了cms垃圾回收器
jinfo -flag UseConcMarkSweepGc 进程号
是否启用了G1垃圾回收器
jinfo -flag UseG1GC 进程号
是否启用了平行垃圾回收器
jinfo -flag UseParallalGc 进程号

image.png

4.jstat

查看jvm统计信息(类装载、垃圾收集、JIT编译)

options:
-class	类装载信息 	
-compiler	编译信息
-gc	垃圾收集信息
-printcompilation

image.png
image.png
image.png

5.定位内存溢出

内存溢出自动导出

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./

jmap导出

jmap -dump:format=b,file=D:\dev_home\jvm\heap.hprof 进程号

image.png
导入dump,使用MAT查看:
image.png
image.png
查看类的依赖关系
image.png

6.线程状态查看

jstack 进程号 

查看相关进程状态
image.png

7.visualvm查看

image.png

1.java visualvm远程监控

tomcat配置:
image.png

JAVA_OPTS="$JAVA_OPTS 
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=10011 
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.rmi.server.hostname=192.168.1.10 
-Dcom.sun.management.jmxremote.ssl=false 
"