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

                                                                              java排查故障
    top -Hp 31327

    #或top -p 31327,再按shift+h,-H则是线程开关,传入该参数的话,top界面会显示所有单独的线程列表)

    ##31327为java进程,拿到异常的线程id后,便可以将该进程的线程栈用下面的jstack命令全部输出:

    ##jstack 查看java 堆栈信息
    jstack 31327 |more

    "http-bio-18080-exec-11" daemon prio=10 tid=0x00007f50b028e800 nid=0x5757 runnable [0x00007f50936eb000]
    "http-bio-18080-exec-9" daemon prio=10 tid=0x00007f50b02a5000 nid=0x7a9d runnable [0x00007f512d6b5000]
    "http-bio-18080-exec-8" daemon prio=10 tid=0x00007f50b02a3800 nid=0x7a9b runnable [0x00007f512d9e3000]
    "http-bio-18080-exec-7" daemon prio=10 tid=0x00007f50b0011000 nid=0x7a99 runnable [0x00007f512dc88000]
    "http-bio-18080-exec-5" daemon
    ————————————————
    ##可以看到这些线程都一直挂在程序的某一行,多半是这里发生了死锁

    jps -vm | grep 31327 |more
    ##可以查看java进程的参数或者日志地址等.如果没有显示参数的话,可以cd到/proc/15195/cwd目录,该目录便是进程的运行目录

    jstat -gc 15195
    ##获得当前进程的gc状态 ,注:用jstat -gcutil $PID $INTERVAL $TIMES查询可能会更直接

    ##如果是PU(PermGen Usage)占用非常高,约为95.7%,是因为Perm代过高,且CMS GC无法回收掉Perm区内容,而导致频繁GC。
    ##CMS GC与普通的STW Full GC不同,不会暂停应用,但是会导致CPU使用率非常高。
    ##解决方法有两种:1)提高Perm区大小,-XX:PermSize -XX:MaxPermSize,2)关掉Perm区收集机制,取消-XX:+CMSClassUnloadingEnabled
    ————————————————

    ######## 线程状态: #################
    Deadlock – 死锁 
    Runnable – 执行中 
    Suspended – 暂停 
    Blocked – 阻塞 
    Parked – 停止 
    Waiting on condition – 等待资源 
    Waiting on monitor entry – 等待获取监视器 
    Object.wait() 或 TIMED_WAITING – 对象等待中
     

  • 相关阅读:
    <置顶>Eclipse和myeclipse常用快捷键-操作-设置
    Eclipse : Loading descriptor for ...错误解决
    ORA-00937: 不是单组分组函数
    An error has occurred,See error log for more details 错误解决办法
    [Error Code: 942, SQL State: 42000] ORA-00942: 表或视图不存在
    ORA-00001: 违反唯一约束条件
    eclipse 出现user operation is waiting
    [空格][空白][特殊]字符/文字
    powerdesigner16.5安装教程及破解步骤
    mybatis遇到日期类型数据时String到date的转化
  • 原文地址:https://www.cnblogs.com/liulvzhong/p/java.html
Copyright © 2011-2022 走看看