zoukankan      html  css  js  c++  java
  • jstack分析Java进程信息

    jstack分析Java进程信息

    1.查出当前Java程序的进程ID (19893)

    ps -ef|grep javaps -aux|grep java 都是查询进程信息,aux是BSD风格,-ef是System V风格。主要区别是aux会截断command列,而-ef不会。

     

    2.查看当前进程的各个线程使用情况 

    top -Hp {pid} #查看当前进程的线程CPU使用情况

    top -Hp 19893   #  (注意这下面的pid 19894 ,19895...26983 则不是进程id了,而是线程ID)

    3.jstack通过查看进程详情来查看进程里线程的状态

    jstack 19893

    在top命令中,已经获取到了线程pid,将该pid转成16进制的值,在thread dump中每个线程都有一个nid,找到对应的nid即可

    nid对应top -Hp 19893命令结果中的某个线程id ,十六进制!

    eg: 十六进制:  nid=0x690d   对应 十进制:pid=26893  (第2点图片中最后一行的pid) ,其它线程也是如此对应~

    进制转换参考文章https://www.cnblogs.com/summerdata/p/10722144.html

    dump 文件里值得关注的线程状态有以下几种

    死锁: Deadlock(重点关注) 
    
    执行中:Runnable   
    
    等待资源: Waiting on condition(重点关注) 
    
    等待获取监视器: Waiting on monitor entry(重点关注)
    
    暂停:Suspended
    
    对象等待中:Object.wait() 或 TIMED_WAITING
    
    阻塞: Blocked(重点关注)  
    
    停止:Parked

    ps: 还需要关注一下 locked信息,locked的对象是否会死锁。

    知识小分享:

    lsof -P {pid} #查看当前进程的引用文件信息
    eg: lsof -P 19893
    
    lsof -i:8080 #查看当前端口的网络访问信息
    top -Hp {pid} #查看当前进程的线程使用情况 eg: top -Hp 19893

      

  • 相关阅读:
    C#中double转int时需要注意的地方
    OracleHelper类
    POJ2570, ZOJ1967
    ZOJ3088
    POJ3259(spfa判负环)
    POJ3268
    ZOJ1092 POJ2240
    ZOJ1298 POJ1135
    SRM587 div2
    POJ1679判断最小生成树是否唯一
  • 原文地址:https://www.cnblogs.com/DFX339/p/12456280.html
Copyright © 2011-2022 走看看