第七章 JVM性能监控与故障处理工具(1)
2016-02-07 18:23
477 查看
1、定位系统问题
依据
GC日志
堆转储快照(heapdump/hprof文件)
线程快照(threaddump/javacore文件)
运行日志
异常堆栈
分析依据的工具
jps:显示指定系统内的所有JVM进程
jstat:收集JVM各方面的运行数据
jinfo:显示JVM配置信息
jmap:形成堆转储快照(heapdump文件)
jhat:分析heapdump文件
jstack:显示JVM的线程快照
jconsole
visualVM
说明:后边两种是具有图形化界面的。
2、jps(是其他所有命令的基础)
作用:列出所有的JVM虚拟机进程。
格式:jps -l
View Code
注意:代码中我注释掉一段,是因为想也查出当前线程的堆栈信息,作者并没有这个注释。
总结:
JVM性能相关的6个常用的JDK命令
jps:查询JVM中的所有进程,找出将要操作的PID,是所有命令的基础
jstat:查看相应JVM进程的gc、类加载卸载信息,是没有GUI界面查看JVM运行数据的首选
jinfo:查看和在运行期动态修改JVM配置参数
jmap:生成堆转储快照和比较占内存的对象
jhat:配合jmap分析堆转储日志,除非没有其他工具可做这个事儿,否则就不用该工具
jstack:生成线程快照,定位线程长时间卡顿的原因(线程间死锁、死循环、请求外部资源导致的长时间等待)
输出gc信息到控制台
-XX:+PrintGCDetails:输出GC的详细信息
-XX:+PrintGCTimeStamps:输出GC的时间信息
-XX:+PrintGCApplicatonStoppedTime:GC造成的应用暂停的时间
输出gc信息到文件
以上三个参数在这里依旧适用
-Xloggc:文件路径/gc.log:输出到文件
依据
GC日志
堆转储快照(heapdump/hprof文件)
线程快照(threaddump/javacore文件)
运行日志
异常堆栈
分析依据的工具
jps:显示指定系统内的所有JVM进程
jstat:收集JVM各方面的运行数据
jinfo:显示JVM配置信息
jmap:形成堆转储快照(heapdump文件)
jhat:分析heapdump文件
jstack:显示JVM的线程快照
jconsole
visualVM
说明:后边两种是具有图形化界面的。
2、jps(是其他所有命令的基础)
作用:列出所有的JVM虚拟机进程。
格式:jps -l
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.Map"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jstack</title> </head> <body> <% for(Map.Entry<Thread, StackTraceElement[]> stackTrace : Thread.getAllStackTraces().entrySet()){ Thread thread = (Thread)stackTrace.getKey(); StackTraceElement[] elements = (StackTraceElement[])stackTrace.getValue(); /* if(thread.equals(Thread.currentThread())){ continue; } */ out.println("\n线程:"+thread.getName()+"\n"); for(StackTraceElement ele : elements){ out.println("\t"+ele+"\n"); } } %> </body> </html>
View Code
注意:代码中我注释掉一段,是因为想也查出当前线程的堆栈信息,作者并没有这个注释。
总结:
JVM性能相关的6个常用的JDK命令
jps:查询JVM中的所有进程,找出将要操作的PID,是所有命令的基础
jstat:查看相应JVM进程的gc、类加载卸载信息,是没有GUI界面查看JVM运行数据的首选
jinfo:查看和在运行期动态修改JVM配置参数
jmap:生成堆转储快照和比较占内存的对象
jhat:配合jmap分析堆转储日志,除非没有其他工具可做这个事儿,否则就不用该工具
jstack:生成线程快照,定位线程长时间卡顿的原因(线程间死锁、死循环、请求外部资源导致的长时间等待)
输出gc信息到控制台
-XX:+PrintGCDetails:输出GC的详细信息
-XX:+PrintGCTimeStamps:输出GC的时间信息
-XX:+PrintGCApplicatonStoppedTime:GC造成的应用暂停的时间
输出gc信息到文件
以上三个参数在这里依旧适用
-Xloggc:文件路径/gc.log:输出到文件
相关文章推荐
- linux服务搭建----ssh服务开启
- linux服务搭建----ssh服务开启
- linux服务搭建----ssh服务开启
- linux mysql默认安装在哪个目录
- linux服务搭建----ftp与ftp yum源搭建
- linux服务搭建----ftp与ftp yum源搭建
- linux服务搭建----ftp与ftp yum源搭建
- linux服务搭建----NFS服务搭建
- linux服务搭建----NFS服务搭建
- linux服务搭建----NFS服务搭建
- linux服务搭建---yum源服务搭建
- linux服务搭建---yum源服务搭建
- linux服务搭建---yum源服务搭建
- linux打包压缩常用命令
- linux打包压缩常用命令
- linux打包压缩常用命令
- Linux:getrusage的用法
- Linux命令行学习之路(八)——压缩和解压缩
- fuse_operations与fuse_lowlevel_ops结构学习
- linux中的tar命令