我正在运行最新的Ubuntu 16.0.4 LTS。 Linux 4.4内核经常拒绝安排我的工作线程,即使存在空闲核心。
我已经通过以下方式捕获了嫌疑人安排:
$ perf sched record sleep 0.1
$ perf 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