Linux不在空闲CPU上调度等待任务

Linux不在空闲CPU上调度等待任务,linux,cpu,scheduler,scheduling,perf,Linux,Cpu,Scheduler,Scheduling,Perf,我正在运行最新的Ubuntu 16.0.4 LTS。 Linux 4.4内核经常拒绝调度我的工作线程,即使存在空闲内核 我通过以下方式抓获了嫌疑犯: $ perf sched record sleep 0.1 $ perf timechart 它清楚地显示CPU0和CPU1空闲几毫秒,而任务blox:5425542654275428显示为黄色,表示正在等待CPU 当然,如果有进程/线程等待运行,CPU核心不应该保持空闲 我是否受到Linux调度程序错误的影响 我很确定我并不总是有这个问题,它

我正在运行最新的Ubuntu 16.0.4 LTS。 Linux 4.4内核经常拒绝调度我的工作线程,即使存在空闲内核

我通过以下方式抓获了嫌疑犯:

$ perf sched record sleep 0.1
$ perf timechart

它清楚地显示CPU0和CPU1空闲几毫秒,而任务blox:5425542654275428显示为黄色,表示正在等待CPU

当然,如果有进程/线程等待运行,CPU核心不应该保持空闲

我是否受到Linux调度程序错误的影响

我很确定我并不总是有这个问题,它只是在某个时候开始发生

为什么会发生这种情况,Ubuntu中有没有让我调整任务调度器行为的工具。也许通过一些sysctl命令?或者尝试不同的调度策略是否需要自定义编译的内核

OS:Ubuntu 16.0.4 LTS
内核:Linux ubuntu64 4.4.0-98-generic

CPU:Intel(R)Core(TM)i5-4570CPU@3.20GHz

仅凭屏幕截图就很难分辨。请帮助我们重现问题并提供原始观察结果,例如性能数据。了解线程相关性也很重要,在这种情况下可能会对您有所帮助。投票结束:“寻求调试帮助的问题”(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有*明确问题陈述的问题对其他读者没有用处。请参阅:[如何创建最小、完整且可验证的示例]”。也可能是更合适的。祝你好运。这真的很难从一个截图上分辨出来。请帮助我们重现问题并提供原始观察结果,例如性能数据。了解线程相关性也很重要,在这种情况下可能会对您有所帮助。投票结束:“寻求调试帮助的问题”(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有*明确问题陈述的问题对其他读者没有用处。请参阅:[如何创建最小、完整且可验证的示例]”。也可能是更合适的。祝你好运