基于JDK命令行工具的监控

基于JDK命令行工具的监控

1、JVM的参数类型
(1)标准参数

-help / -server -client /-version -showversion / -cp -classpath

(2)X参数(非标准化参数)

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

(3)XX参数
非标转化参数,相对不稳定,主要用于JVM调优和Debug

分类:
	Boolean类型
		格式: -XX:[+-]<name>表示启动或者禁用name属性
		比如: -XX:+UseConcMarkSweepGC
	非Boolean类型
		格式: -XX:<name>=<value>表示name属性的值是value
		比如: -XX:MaxGCPauseMills=500
	-Xmx -Xms
		不是X参数,而是XX参数
		-Xms等价-XX:InitialHeapSize
		-Xmx等价-XX:MaxHeapSize

2、查看运行时JVM参数
(1)-XX:+PrintFlagsInitial查看初始值

=表示默认值
:=被用户或者JVM修改后的值
https://docs.oracle.com可以查询

(2)-XX:+PrintFlagsFinal查看最终值
(3)-XX:+UnlockExperimentalVMOptions解锁实验参数
(4)-XX:+UnlockDiagnosticVMOptions解锁诊断参数
(5)-XX:+PrintCommandLineFlags打印命令行参数
3、jstat查看虚拟机统计信息
(1)类装载

格式:jstat -help
Options:-class,-compiler,-gc,-printcompilation

(2)垃圾收集

Options:-gc,-gcutil,-gccause,-gcnew,-gcold
	-gc输出结果
	
S0C、S1C、S0U、S1U:S0和S1的总量与使用量
EC、EU:Eden区总量与使用量
OC、OU:Old区总量与使用量
MC、MU:Metaspace区总量与使用量
CCSC、CCSU:压缩类空间总量与使用量
YGC、YGCT:YoungGC的次数与时间
FGC、FGCT:FullGC的次数与时间
GCT:总的GC时间

(3)如何导出内存映像文件

内存溢出自动导出
-XX:+HeadDumpOnOutOfMemoryError
-XX:HeapDumpPath=./
使用jmap命令手动导出

4、MAT内存溢出
(1)eclispe mat工具
(2)打开内存映像文件,进行分析

posted @ 2020-03-17 19:52  李泽坤  阅读(99)  评论(0编辑  收藏  举报