linux杀掉cpu使用率高的进程,线上linux系统故障排查之一:CPU使用率过高

当Linux系统中一个应用的CPU使用率过高时,通常是由于死循环导致。本文详细介绍了如何使用top命令定位占用CPU的进程和线程,以及通过jstack命令分析线程状态,从而找出并解决导致CPU占用过高的问题。通过top -p 41843 -H 查看线程CPU占用,再用jstack 41892 | grep a3a4 定位代码异常,最终找到线程test()内的死循环并进行修复。

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

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。

下面我们将一步步定位问题,详尽的介绍每一步骤的相关知识。

一、通过top命令定位占用cpu高的进程

执行top命令得到以下结果:

6d573e42310a

top命令执行结果

通过上图可以明显看出进程PID41843占用cpu过高,明显存在问题,定位到了进程id。当然如果你想只观察进程PID41843的CPU和内存以及负载情况,可以使用以下命令

top -p 41843。

结果如下:

6d573e42310a

top -p 41843命令执行结果

这里顺便解释下上图各个参数的意义,有利于读者更好的排查问题。

第一行是任务队列信息

top - 14:06:34 up 537 days, 6 min, 6 users, load average: 0.41, 0.45, 0.43

任务队列信息

含义

14:06:34

当前时间

537 days

系统运行时间

6 min

用户在线时间

6 users

在线用户数

load average: 0.41, 0.45, 0.43

系统负载,即任务队列的平均长度。1分钟前、5分钟前、15分钟前平均负载

2)第二行为进程的信息

进程信息

含义

Tasks: 1 total

进程总数

0 running

正在运行的进程数

1 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

第三行为cpu信息

cpu信息

含义

6.1% us

用户空间占用CPU百分比

1.5% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

92.2% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

硬件中断

0.0% si

软件中断

0.0%st

实时

第四、五行为内存信息。

内容如下:

物理内存信息

含义

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量

交换区信息

含义

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

缓冲的交换区总量

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值