JVM的性能监控和故障处理

如何查看JVM的性能参数,发生频繁的FULLGC该如何排查?

性能监控和故障处理是建立在虚拟机数据的基础上的,数据包括:

  1. 运行日志
  2. 异常堆栈
  3. GC日志
  4. 线程快照(threaddump/javacore文件)
  5. 堆转储快照(heapdump/hprof文件)等

常用JDK工具:
jps:查看所有的Hotspot虚拟机进程(每运行一个Java程序都会产生一个虚拟机进程)
jstat:虚拟机运行数据
jinfo:配置信息
jmap:生成内存转储快照(headdump)
jhat:分析deaddump文件(使用户可以在浏览器里查看分析结果,但很简陋,所以一般都会用其他更专业的分析工具如eclipse提供的memory analyzer)
jstatck:显示虚拟机的线程快照

一次内存泄漏的排查
服务器频繁出现FullGC,怀疑是内存泄漏
确定当前服务应用的虚拟机进程(使用jps命令查看)
获得进程id后使用jstat命令进行监控,可查看年轻代、老年代占用内存,单位时间内的FullGC次数等
可使用VisualVM工具(一种可视化工具)生成dump文件后用MAT工具查看(此方法比较耗时),也可以使用jmap+jhat命令轻量地查看dump文件快照

你可能感兴趣的:(JVM的性能监控和故障处理)