美文网首页
CPU过高排查

CPU过高排查

作者: 阿畅00000 | 来源:发表于2023-03-29 15:33 被阅读0次

    日常笔记,遇到CPU超过100%时,怎么查看java 项目哪个进程卡住,并且排除内存溢出情况。

    1.查看CPU过高的进程:
    top
    
    2.查看进程所在线程:
    top -H -b -p 18401|head -10
    
    3.由于java栈中显示的pid是16进制的。所以这里需要将十进制转化为16进制:
    printf  "%x\n" 18435
    
    4.使用jstack命令查看,将刚才十进制转化为16进制的:4803,使用grep过滤一下
    jstack 18401 | grep 4803 -A 30
    
    5.输出日志到dump.out
    jstack 18401 > dump.out &
    

    查看日志是可能会遇到以下情况,查看java_pid18401.hprof 使用mt 工具打开:

    Unable to open socket file : target process not responding or HotSpot VM not loaded 
    The -F option can be used when the target process is not responding 
    

    ⚠️ 小工具:

     查看连接数:
    netstat -n | zwk '/^tcp/ {++S[$NF]}  END {for(a in S) print a, S[a]} '
    

    相关文章

      网友评论

          本文标题:CPU过高排查

          本文链接:https://www.haomeiwen.com/subject/qwpfddtx.html