zoukankan      html  css  js  c++  java
  • CPU高问题排查

    有关CPU占用高的问题

    掌握一些常用命令 jstack jmap jps ps -ef 等等

    jmap

    # sudo -u admin /opt/taobao/java/bin/jmap -dump:live,format=b,file=/home/admin/crawler/logs/heap.bin 38

    top 命令查看CPU使用情况 PID为进程号

     执行 ps -ef | grep 18201  找到具体进程

    涉及公司图片不能泄露,以本机任意一个进程代替,这个命令会出现两个结果,第二个是刚才执行“ ps -ef | grep 18201 ” 产生的

    查看所有容器  sudo docker ps -a

    进入容器  sudo docker exec -it 容器ID bash

    再次使用TOP命令

    jstack打印堆栈信息

    sudo -u admin /xxx/java/bin/jstack -l 34 > /localhost/stack.log

    或者 sudo -u admin /xxx/java/bin/jstack `jps |grep Bootstrap |awk '{print $1}'`> /localhost/stack.log 

    在宿主机 执行 cp filename ~ 直接copy到跳板机 

    注意点:1、jstack需要绝对路径

    2.jstack 是jstack是java虚拟机自带的一种堆栈跟踪工具,一定要去java/bin 目录下使用该命令 

    分析jstack日志

    执行  top -H p 进程ID    得到 具体线程ID

    线程ID换算成16进制,在jstack日志中找对应的nid,例如nid=0x70,线程目前是 Waiting on condition,通过堆栈信息找到是哪一行代码的问题

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



  • 相关阅读:
    执行脚本,且以脚本名保存log
    循环读取寄存器(QSFP-DD)并且分别保存log
    shell脚本添加脚本执行时间和当前运行次数current running time
    软件后门种植
    IPC$管道的利用与远程控制
    古典密码-维吉尼亚密码实验
    古典密码之乘法密码
    古典密码之凯撒密码
    密码破解工具Brutus
    ASPack壳脱壳实验
  • 原文地址:https://www.cnblogs.com/number7/p/9276794.html
Copyright © 2011-2022 走看看