性能监控及故障处理工具[1.8]
- jps
- JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
- 默认显示正在运行的虚拟机进程:本地虚拟机唯一ID(LVMID)和执行主类
- jps [-help]
- help : 获取帮助列表
- jps [-q] [-mlvV] [<hostid>]
- q : 只输出LVMID,省略主类
- m : 输出启动时,传递给主类main()函数的参数
- l :输出主类的全名。如果执行的是jar,则输出jar全路径
- v :JVM参数
- V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
- <hostid>: <hostname>[:<port>] 查看远程主机的进程
- jstat
- JVM Statistics Monitoring Tool,用于监视虚拟机各方面的运行数据
- 可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
- jstat -help|-options
- help : 获取帮助
- options :获取作用参数列表
- jstat -<option> [-t] [-h<lines>] <vmid> [<interval>[s|ms] [<count>]]
- t : 第一列显示时间戳,从jvm启动开始
- h<lines> : 每隔多少行显示表头
- vmid : 若是本地虚拟机,则就是lvmid远程主机,则[protocol:][//]vmid[@hostname[:port]/serverName]
- interval:每隔指定时间输出一次,默认单位为ms,可以指定为s
- count :共输出多少次
- option
- class :监视类装载、卸载数量、总空间以及类装载耗费时间
- 示例
- 解析
- 示例
- compiler:输出JIT编译过的方法、耗时等信息
- 示例
- 解析
- gc :监视Java堆情况
- 示例
- gccapacity :监视内容与gc相同,主要关注各个区域使用到的最大、最小空间
- 示例
- 解析
- gcutil : 与gc基本相容,主要关注已使用空间占总空间的百分比
- gccause:与gcutil功能一致,额外输出上一次gc的原因
- gcnew : 监视新生代Gc情况
- gcnewcapacity : 与gcnew基本相同,主要关注内存使用情况
- gcold: 监视老年代Gc情况
- gcoldcapacity : 与gcold基本相同,主要关注内存使用情况
- gcmetacapacity:监视元数据的内存使用情况
- printcompilation :JIT编译方法统计
- 示例
- 解析
扫描二维码关注公众号,回复: 10948074 查看本文章
- class :监视类装载、卸载数量、总空间以及类装载耗费时间
- jinfo
- Configuration Info for Java,实时查看和调整虚拟机参数
- jmap
- Memory Map for Java,生成虚拟机的内存转储快照(headdump文件)
- 其他拿到dump文件的方法
- -XX:HeadDumpOnOutOfMemoryError 出现OOM异常后自动生成
- -XX:HeapDumpONCtrlBreak 使用Ctrl + Break键促使生成
- linux环境下,发送kill -3 生成
- 除-dump与-histo参数是平台通用外,其他参数只在linux和Solaris使用
- jhat
- JVM Heap Dump Browser,用于分析headdump文件,会建立一个http/html服务器,让用户在浏览器上查看分析结构
- 一般不会直接使用jhat,一是耗时耗资源,二是功能比较粗糙
- jstack
- Stack Trace for Java,显示虚拟机的线程快照
- 线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合
- 生成快照的目的是定位线程出现长时间停顿的原因.
- HSDIS
- JIT生成代码反汇编插件
- -XX:+PrintAssembly 把动态生成的本地代码还原为汇编代码输出,并生成注释
- JConsole
- jconsole命令或jdk/bin的jconsole.exe
- 内存监控(内存):相当于可视化的jstat命令
- 线程监控(线程):可视化的jstack命令
- JVisualVM
- 显示虚拟机进程以及进程的配置、环境信息(jps、jinfo)
- 监视应用程序的CPU、GC、堆、方法区以及线程的信息(jstat、jstack)
- dump以及分析dump(jmap、jhat)
- 方法级的程序运行性能分析
- 离线程序快照
- 其他plugin
- BTrace:在不停止目标程序运行的前提下,通过HotSpot虚拟机的HotSpot技术动态加入原本不存在的调试代码。