JVM性能监控和故障处理工具
2020-11-20 13:56:09 0 举报
AI智能生成
登录查看完整内容
JVM性能监控和故障处理工具
作者其他创作
大纲/内容
命令行故障处理工具
jps
查看系统中所有的HotSpot虚拟机进程
使用
格式:jps [options] [hostid]
-q: 只输出pid
-m:输出启动时传给main方法的参数
-l:输出烛泪的全名,如果是jar文件,则输出jar路径示例:73911 sun.tools.jps.Jps4216665118 com.ad.core.CoreApplication
-v:输出虚拟机进程启动时候的JVM参数
jstat
JVM Statistics Monitoring Tool,监视虚拟机各种运行状态信息
格式:jstat [option vmid [interval [s|ms] [count]]]
说明:interval表示间隔,count表示次数
-class: 监视类加载,卸载数量,总空间以及类装在所消耗的时间示例:jstat -class 65118Loaded Bytes Unloaded Bytes Time13713 24265.7 12 13.3 6.06
-gc: 监视Java堆状况示例:jstat -gc 65118 100 2 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT19968.0 1024.0 0.0 0.0 449536.0 338709.8 164864.0 39362.0 69248.0 64132.8 9856.0 8943.9 17 0.223 6 0.969 1.19319968.0 1024.0 0.0 0.0 449536.0 338709.8 164864.0 39362.0 69248.0 64132.8 9856.0 8943.9 17 0.223 6 0.969 1.193
-gcutil: 与-gc基本相同,主要关注已使用空间占总空间对百分比示例:jstat -gcutil 65118 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 0.00 64.91 23.88 92.61 90.75 17 0.223 6 0.969 1.193
-gcnew: 监视新生代对垃圾回收情况示例:jstat -gcnew 65118 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT19968.0 1024.0 0.0 0.0 6 15 20480.0 449536.0 378095.1 17 0.223
-printcompilation: 输出以及被即时编译对方法示例:jstat -printcompilation 65118Compiled Size Type Method 8237 88 1 org/apache/tomcat/util/buf/CharsetCache getCharset
jinfo
实时查看和调整虚拟机各项参数
格式:jinfo [option] pid
-flags: 查看启动参数
-flag name pid: 查看某个参数示例:jinfo -flag CMSInitiatingOccupancyFraction 79102-XX:CMSInitiatingOccupancyFraction=-1
-sysprops: 查看系统参数
-flag [+|-] name 或 -flag name=value: 在运行期修改部分虚拟机参数
jmap
内存映像工具,用于生成堆转储快照 heapdump或dump文件
格式:jmap [option] vmid
-heap:显示堆详细信息,如使用那种回收器,参数配置,分代情况等
-histo: 显示堆中对象统计信息,包括类,实例树立,合计容量
-F: 当-dump没有响应当时候,使用这个选项强制生成dump快照
jstack
堆栈跟踪工具,用于生成虚拟机在当前时刻的线程快照 threaddump 或者 javacore文件
目的
定位线程出现长时间停顿的原因:如死锁,死循环,请求外部资源导致的长时间刮起等
查看线程的调用堆栈
格式:jstack [option] vmid
-F: 正常输出的请求不被响应的时候,强制输出线程堆栈
-l: 除堆栈外,显示关于锁的附加信息
子主题
jhat
虚拟机快照分析工具,与jmap搭配使用,但是分析功能简单,且分析工作耗时,不建议使用
可以将快照文件复制到其他机器,然后使用 VisualVM 或 其他张掖快照分析工具分析
jhsdb
jdk9 开始提供,集成了jstate, jinfo,jmap, jhat,jstack
查看堆快照:jhsdb jmap --binaryheap
查看堆中对象统计信息:jhsdb jmap --histo
查看线程堆栈信息:jhsdn jstack --locks
jcmd
虚拟机诊断命令工具,将诊断命令请求发送到正在云南行到Java虚拟机。
查看堆快照:jcmd <pid> GC.heap_dump
查看堆中对象统计信息:jcmd <pid> GC.class_histogram
查看线程堆栈信息:jcmd <pid> Thread.print
性能监控和故障处理工具
可视化故障处理工具
jconsole
监视与控制管理控制台。基于JMX(Java Management Extensions)的可视化监视,管理工具
启动:jconsole
功能:内存监控,线程监控,检测死锁
基于服务性代理实现堆进程外调试工具
启动: jhsdb hsdb --pid <pid>
功能:可以查看对象堆堆内存分布,和线程堆栈内存分布
jvisualvm
多合一故障处理工具,支持插件扩展
启动: jvisualvm
0 条评论
回复 删除
下一页