CPU占用过高分析和定位

本文介绍了如何通过Linux的top、ps、jps命令以及JDK的jstack工具,逐步定位并分析CPU占用过高的原因。通过top初步找出高CPU进程,再用ps与jstack细化到具体线程和代码行,最终确定问题所在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用Linux命令和JDK命令一块查

第一、先用top命令找出CPU占比最高的

第二、ps -ef或者jps进一步定位,得知是怎么用哪个的一个后台程序在不断占用CPU

两种命令都找出是5101这个进程编号

第三、定位到具体的线程或者代码

命令:ps -mp 进程 -o THREAD,tid,time

参数解释:

-m 显示所有的线程

-p pid 进程使用cpu的时间

-o 该参数是用户自定义格式

进一步定位到了5102这个线程有问题。

第四步、将需要的线程ID转换为16进制格式(英文小写格式)

因为线程在内存里面跑是16进制的

格式:printf "%x\n" 有问题的线程ID

5102的16进制为13ee。

第五步、jstack 进程ID | grep tid(16进制线程ID小写英文) -A60

这个时候定位到是com.atguigu.test.JavaDemo02这个类里面的第10行代码有问题。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值