Linux进程占用cpu100%问题排查

    技术2022-07-16  85

    传统方式

    查看当前占用CPU较大的进程PID. 命令: top定位问题项目部署位置. 命令: pwdx [PID]定位具体问题项目(例如: 多个java进程) 命令: ps aux | grep [PID]根据第一步获取到的PID,查找进程中占用cpu较多的线程ID. 命令: top -Hp [PID]将上一步获取到的线程ID转化为16进制. 命令: printf “0x%x\n” [线程PID]通过java的jstack获取对应线程指定行数的堆栈信息. 命令: jstack [PID] | grep [线程PID] -A 50
    使用示例
    top pwdx 101647 ps aux | grep 101647 top -Hp 101647 printf “0x%x\n” 101647 jstack 101647 | grep 19d45 -A 50

    优化方式

    利用工具

    服务检测工具脚本工具(例如: 阿里巴巴的show-busy-java-threads )
    Processed: 0.008, SQL: 9