docker环境检查占用cpu飙升的异常java服务

Posted 旺仔哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker环境检查占用cpu飙升的异常java服务相关的知识,希望对你有一定的参考价值。

1.docker stats 命令查看服务资源占用情况 获取cpu异常的容器id 60a01eab867b
2.docker exec -it 60a01eab867b /bin/bash 命令进入容器
3.top 命令查看该容器线程占用最高的进程PID 1
4.ps -mp 1 -o THREAD,tid,time 命令获取到1这个进程下面所有线程,通过查看%CPU找到最耗费CPU的线程TID 24(或者使用命令 top -Hp 1)
5.printf ‘%x’ 24 命令转换成对应的16进制PID 5c7e(24为上一步中获取到的线程TID )
6.jstack 1 | grep 5c7e -A 30 命令查看异常信息 注意:1是一开始获取的进程PID,而5c7e则是这个进程下面最耗费CPU的线程TID
7.jstack 1(进程pid)>stack.dump 命令,将该消耗进程的线程相关信息导出到stack.dump文件中,打开这个文件查看每个线程的具体状态然后分析代码异常

以上是关于docker环境检查占用cpu飙升的异常java服务的主要内容,如果未能解决你的问题,请参考以下文章

openjdk占cpu高怎么处理

关于CPU飙升时的排查过程

cpu飙升问题排查思路

Java_cpu飙升排查

面试连环炮系列:服务器CPU飙升100%怎么排查

Docker环境下Spring Boot应用内存飙升分析与解决