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

时间:2017-11-12 22:02:53

标签: linux cpu scheduler scheduling perf

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

我已经通过以下方式捕获了嫌疑人安排:

$ perf sched record sleep 0.1
$ perf timechart

timechart

它清楚地显示CPU0和CPU1空闲几毫秒,而任务blox:5425,5426,5427,5428在等待CPU时显示为黄色。

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

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

我很确定我并不总是遇到这个问题,它刚刚开始发生。

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

OS: Ubuntu 16.0.4 LTS
内核: Linux ubuntu64 4.4.0-98-generic
CPU:英特尔(R)酷睿(TM)i5-4570 CPU @ 3.20GHz

0 个答案:

没有答案