arm linux下CPU占用过高问题排查方法
方法一:1.top指令查看各进程的cpu占用情况(top+1:可查看多核cpu情况):2.对CPU使用率过高的进程的所有线程进行排序ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep MainWin`3.通过查看/proc中的信息来确定高CPU线程. 打印了4列,线程ID,线程名,用户时间和内核时间(排名未分先后)`awk '{print $1,$2,$1
·
方法一:
1.top指令查看各进程的cpu占用情况(top+1:可查看多核cpu情况):
2.对CPU使用率过高的进程的所有线程进行排序
ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep MainWin
3.通过查看/proc中的信息来确定高CPU线程. 打印了4列,线程ID,线程名,用户时间和内核时间(排名未分先后)
awk '{print $1,$2,$14,$15}' /proc/689/task/*/stat
4.找出进程中线程情况
使用gdb attach nmsagent所在的进程,在gdb中使用 info threads显示所有线程
gdb attach 689
info threads
得到如下结果,可以发现699线程的编号是5
5.使用thread 切换线程,使用bt显示线程栈
thread 5
bt
得到如下线程栈
方法二:
ps + strace
获取进程线程状态:
ps -eL | grep 699
使用 strace -p 717 得到线程栈
显示所有进程:
ps -el
查看所有进程的cpu占用时间(cpu使用率过高)
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
可参考:
https://www.cnblogs.com/ghost240/p/3863774.html
更多推荐
已为社区贡献1条内容
所有评论(0)