JVM 调优工具
JDK 的 bin 目录的常用工具
1.jps
- jstat
-class(监视类装载、卸载数量、总空间以及耗费的时间)
jstat -class 10470(进程id)
jstat -compiler 10470
jstat -gc 10470
jstat -gc 10470 1000 50 (1000表示每秒输出一次,50表示总共打印50次)
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
13312.0 9728.0 0.0 9584.2 278016.0 197948.5 104960.0 23710.5 32512.0 30789.6 4096.0 3744.1 11 0.087 1 0.024 0.111
13312.0 9728.0 0.0 9584.2 278016.0 197948.5 104960.0 23710.5 32512.0 30789.6 4096.0 3744.1 11 0.087 1 0.024 0.111
-gccause
LGCC:最近垃圾回收的原因
GCC: 当前垃圾回收的原因
3. jinfo : 可以用来查看正在运行的java的应用程序的扩展参数,甚至支持在运行时,修改部分参数
参数: -flag
-flag[+|-]
-flag
用法: jinfo -flag +PrintGCDetails 10470 添加+PrintGCDetails,让源程序能打印GC的log
4. 内存dump工具----jmap
使用Memory Analyzer Tool =MAT (分析hprof文档,找到内存泄露)
http://www.eclipse.org/mat/downloads.php
jmap -dump:file=10470.hprof 10470
当运行程序中添加-XX:+HeapDumpOnOutOfMemoryError,一旦出现outOfMemory 错误的时候,就会生成一个*.hprof文件,生产环境可以设置该参数,然后方便后面查找问题
-XX:HeapDumpPath=/tmp/dump/10470.hprof 配置dump的路径
5. 堆栈跟踪工具--jstack
Attach Listener: 负责接收外部命令
Single Dispactcher: 接收命令收分发给不同的模块
Finalizer:执行用户finalizer 方法的线程
Reference Handler:处理对象引用(软引用/弱引用/虚引用)
- java VisualVm
关于插件,原配置的插件无法正常使用,需要在Github 上重新找到后重新配置:http://visualvm.github.io/archive/uc/8u40/updates.xml.gz