zoukankan      html  css  js  c++  java
  • java应用故障排查

    对于在线运行的程序来说
    常常会因为流量过高 程序bug 依赖故障 线程死锁 配置错误等一些列原因导致系统不可用或者部分不可用
    如果能善加利用JDK提供的工具,往往会方便问题的解决
     
    JPS
    检查当前所有java进程pid
     
    JSTAT
    分析JVM内存状态 检查各代大小

    Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:

    - 类的加载及卸载情况

    - 查看新生代、老生代及持久代的容量及使用情况

    - 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间

    - 查看新生代中Eden区及Survior区中容量及分配情况等

    jstat工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,使我们可以从不同的维度来了解到当前JVM堆的使用情况。详细查看堆内各个部分的使用量,使用的时候必须加上待统计的Java进程号,可选的不同维度参数以及可选的统计频率参数。

     

    JSTACK
    线程快照 检查线程死锁等
    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息
    如果现在运行的java程序呈现hung的状态,jstack是非常有用的
     
    JMAP
    堆的信息 检查内存泄露 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。

    可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(Memory Analysis Tool),使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)或与jhat (Java Heap Analysis Tool)一起使用,能够以图像的形式直观的展示当前内存是否有问题。

     

     

  • 相关阅读:
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities II
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    Meten Special Activities
    冒泡排序和选择排序
  • 原文地址:https://www.cnblogs.com/lnas01/p/5261926.html
Copyright © 2011-2022 走看看