如何定位CPU占用过高问题

本文介绍了一种通过top命令查找导致CPU占用过高的进程,并利用ps命令进一步定位到具体线程的方法。随后通过gdb工具对指定线程进行调试,最终定位问题代码。
程序运行后出现CPU占用过高,一般是代码有死循环等。top命令可以查看CPU使用情况,找到问题进程。

对CPU使用过高的进程的所有线程进行排序
ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep xxx
得到CPU占用率最高的线程的线程号,比如2907进程的线程2909

使用gdb
gdb
gdb>attach 2907
gdb>info threads
列出所有线程信息,发现2909线程编号12

切换线程,bt打印线程栈
gdb>thread 12
gdb>bt
根据打印的信息,重点定位相关代码段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值