收集有关 Linux 上的线程调度的信息
Posted
技术标签:
【中文标题】收集有关 Linux 上的线程调度的信息【英文标题】:Collecting information about thread scheduling on Linux 【发布时间】:2010-07-07 19:08:22 【问题描述】:我想收集有关我的线程何时调度(和取消调度)以及在 Linux 上的 CPU 上的信息。我很乐意收集信息并将其存储在文件中以供以后离线分析,因为我需要将调度信息与我的代码生成的其他事件源合并。理想情况下,信息将由程序本身收集,因为我计划大部分时间使用机器上的所有内核,并且使用外部进程进行采样会干扰我想要测量的执行。
那么这在 Linux 上可行吗?有哪些选择?
【问题讨论】:
【参考方案1】:Linux perf tool 是一个通用的内核支持的分析工具。除此之外,它还可以记录事件,包括任务调度事件。
【讨论】:
谢谢,我知道 perf,我真正想要的是指向 API 的指针,我可以使用这些指针从我自己的代码中获取信息。 @Simon Marlow:perf
就是那个 API。您不必担心它会影响您尝试测量的事物,因为它的工作方式是内核在事件发生时将事件记录到内部缓冲区中,并且用户空间工具在事后运行以提取事件记录。以上是关于收集有关 Linux 上的线程调度的信息的主要内容,如果未能解决你的问题,请参考以下文章