Java运维实战:问题定位-CPU突增排查

java程序最常见的故障场景就是CPU徒增的情况了,本片文章为你讲解java程序CPU突增的情况怎么进行排查

1、获取CPU消耗高的线程ID

top -Hp 进程ID

然后输入大写P(shift+p),就会将这个进程下的线程按照CPU消耗进行排序展示。

举例

然后获取CPU消耗最大的线程ID

2、打线程dump

jstack 进程ID >threaddump.txt

3、将线程ID转换为16进制

printf "%x\n" 365 【第一步得到的消耗CPU高的线程ID】

得到16进制为16d

4、获取CPU消耗高的线程堆栈

然后再线程dump文件【threaddump.txt】中搜索【16d】就可以找到对应该线程的堆栈信息,从而定位到异常代码

相关推荐
qwer555882 分钟前
linux--------------进程控制
linux·运维·服务器
fundroid1 小时前
Rust 为什么不适合开发 GUI
开发语言·后端·rust
三体世界2 小时前
C++ List的模拟实现
java·c语言·开发语言·数据结构·c++·windows·list
MobiCetus2 小时前
【C++重点】虚函数与多态
java·开发语言·c++
神仙别闹2 小时前
基于Java(SSM)+Mysql实现移动大厅业务办理(增删改查)
android·java·mysql
时间会给答案scidag3 小时前
maven高级
java·服务器·前端
Leo1874 小时前
parallelStream线程问题及解决方案
java·spring boot
阿黄学技术4 小时前
Redis场景问题2:缓存击穿
java·数据库·redis·缓存
谢平康5 小时前
docker 镜像下载的另一种方式
运维·docker·容器
写代码的橘子n5 小时前
SpringBoot项目中,controller 、 entity、mapper和service包的介绍
java·tomcat