JVM性能调优与故障诊断
JvmGC参数
- 打印GC参数
-XX:PrintGC
- 打印GC详细参数
-XX:PrintGCDetails
- 打印堆GC参数
-XX:+PrintHeapAtGC
- 打印GC发生时间
-XX:+PrintGCTimeStamps
- 应用程序执行时间
-XX:+PrintGCApplicationConcurrentTime
- 因GC产生停顿时间
-XX:+PrintGCApplicationStoppedTime
- 软、弱、虚引用等
-XX:+PrintReferenceGC
- GC日志目录
-Xloggc:log/gc.log
类加载与卸载参数跟踪
- 加载与卸载
-verbose:class
- 加载
-XX:+TraceClassLoading
- 卸载
-XX:+TraceClassUnLoading
- java对象使用情况
—XX:+PrintClassHistogram
按下: Ctrl+Break
JVM常用参数
- Jvm命令行参数
-XX:+PrintVMOptions
- 堆最大配置
-Xmx20M
- 堆最小配置
-Xms5M
- 元数据区大小
-XX:MaxMetaspaceSize
- 栈大小配置
-Xss
- 堆外内存 (默认为堆最大)
-XX:MaxDirectMemorySize
垃圾回收算法
- 引用计数法
- 标记压缩法
- 标记清除法
- 复制算法
- 分代、分区思想
命令行性能监控工具
- 资源使用情况
top
- 内存和CPU
vmstat
- 监控IO资源
iostat
- 多功能诊断器
pidstat
- 网络
netstat
- 内核信息
dmesg
- 命令神器
lsof
- 进程树
pstree
Jdk性能监控工具
-
虚拟机运行时信息
jstat
-
虚拟机参数信息
jinfo
-
导出堆文件
jmap
-
堆分析工具
jhat
-
线程堆栈监控
jstack
-
远程主机信息收集
jstatd
-
多功能命令行
jcmd
-
性能统计工具
hprof
图形化工具
- JConsole
- Visual VM
- BTrace
- Mission Control
- MAT分析Java堆