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

相关推荐
a程序小傲2 分钟前
饿了吗Java面试被问:Redis的持久化策略对比(RDBVS AOF)
java·redis·面试
我家领养了个白胖胖9 分钟前
MCP模型上下文协议 Model Context Protocol & 百度地图MCP开发
java·后端·ai编程
Coder_Boy_11 分钟前
基于DDD+Spring Boot 3.2+LangChain4j构建企业级智能客服系统
java·人工智能·spring boot·后端
么么...18 分钟前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker
黄俊懿19 分钟前
【深入理解SpringCloud微服务】Spring-Security作用与原理解析
java·后端·安全·spring·spring cloud·微服务·架构师
a程序小傲26 分钟前
阿里Java面试被问:.Java 8中Stream API的常用操作和性能考量
开发语言·windows·python
塔能物联运维27 分钟前
设备自适应采样率忽视能耗致续航降 后来结合功耗模型动态调优
java·后端·struts
翼龙云_cloud29 分钟前
亚马逊云渠道商:Lightsail 如何制定备份与快照策略以平衡安全及成本?
运维·安全·云计算·aws
rchmin35 分钟前
Spring Boot自动装配原理解析
java·spring boot·后端
程序员小假41 分钟前
我们来说一下 synchronized 与 ReentrantLock 的区别
java·后端