本文主要是介绍Linux: tool: perf使用时遇到的一个问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在看一个问题,说有一个进程占用CPU非常高。
这种问题的debug咱们是比较熟的,就是使用perf命令,来收集一下统计数据,然后再根据结果,进行反编译,看看是具体是哪一个函数使用的比较高,依次往下走就好了。
但是在使用perf的过程中,遇到了一个题:运行perf record之后没有反应,而且ctrl+C也不能让perf命令结束,相当于接收不到signal,或者即使接收到了,也没做处理queue住了,同时也就意味着perf收集不到程序的运行统计数据。
这就是一个问题了,为什么呢?
后来分析发现原因,是这个占用CPU比较高的进程是一个FIFO的实时进程而且优先级非常高。
没有办法只有将perf的优先级调到这个进程之上,或者将这个占CPU比较高的进程的优先级调低,再重新收集一次。需要使用的命令是chrt。
chrt - manipulate the real-time attributes of a process
这篇关于Linux: tool: perf使用时遇到的一个问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!