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 – 对象等待中
     

  • 相关阅读:
    PLSQL导入导出oracle表 表空间
    IDL(Interactive Data Language——交互式数据语言)
    easyui更改messager的OkCancel按钮为(中文)确定取消
    java 中判断字符串相等
    hql实现对表的某几个(部分)字段查询
    MyEclipse 断点打不上 提示 absent line number information
    cocos2dx-3.x 导出自定义类到 lua 过程
    cocos2d-x中DrawNode常见的图像绘制函数
    cocos2d环境及创建一个自己的项目
    cocos2d基本类介绍 director/scene/layer/sprite
  • 原文地址:https://www.cnblogs.com/liulvzhong/p/java.html
Copyright © 2011-2022 走看看