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服务的主要内容,如果未能解决你的问题,请参考以下文章