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】就可以找到对应该线程的堆栈信息,从而定位到异常代码

相关推荐
一颗知足的心7 分钟前
Go语言之路————指针、结构体、方法
开发语言·后端·golang
悄悄敲敲敲11 分钟前
Linux:进程间通信->共享内存
linux·运维·服务器
北执南念15 分钟前
项目代码生成工具
java
yuanpan18 分钟前
C#如何正确的停止一个多线程Task?CancellationTokenSource 的用法。
开发语言·c#
绵绵细雨中的乡音19 分钟前
Linux进程学习【环境变量】&&进程优先级
linux·运维·学习
程高兴20 分钟前
单相交直交变频电路设计——matlab仿真+4500字word报告
开发语言·matlab
中国lanwp21 分钟前
springboot logback 默认加载配置文件顺序
java·spring boot·logback
天下·第二30 分钟前
【Nginx】负载均衡配置详解
运维·nginx·负载均衡
苹果酱05671 小时前
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
java·vue.js·spring boot·mysql·课程设计
我真的不会C1 小时前
QT中的事件及其属性
开发语言·qt