为什么正式的Ubuntu内核中没有包含BFQ和BFS调度程序?


24

昨天,我读了一篇有关加速Ubuntu 的文章。文章中的一个建议是用BFQ替换默认的I / O调度程序,据文章所述,BFQ已针对交互式性能进行了优化。

类似的文章指出了使用BFS进程调度程序时桌面性能的优势。

这两个调度程序都包含在众多补丁集和备用内核中,这些补丁集和备用内核可以提高桌面交互性和性能(例如linux-pfliquorix-kernellinux-ck)。

所以我的问题是:考虑到Ubuntu如何努力争取出色的桌面体验,当这些调度程序在交互性能方面被证明更好时,为什么非服务器操作系统的OS却不包含这些调度程序?


有关这两个调度程序的更多信息,请参见:


1
首字母缩写是BFS,不是BFQ,对吗?还是这里的意思?
Jobin

@Jobin Whoops,你是对的。BFS是一个进程调度程序,它与BFQ一样包含在linux-ck补丁集中。我将编辑问题以反映这一点。
谷氨酰胺

相对于Ubuntu默认调度程序Deadline,有没有基准在BFS上有明显的性能提升?该基准测试针对的只是比较反对CFQ
NGRhodes

1
@NGRhodes是的,在此比较中,您可以看到作者在BFQ和截止日期之间实现了大约相等的吞吐量,同时设法将顺序磁盘负载下应用程序的启动时间减少了一个数量级(使用BFQ)。您可以在上面链接的第一篇文章中找到类似的比较。
谷氨酰胺

3
您为什么不尝试在ubuntu-devel-discuss上提出它?
Andrea Corbellini 2013年

Answers:


14

快速回答 :

  1. 这两个调度程序根本无法运行,也不能在所有受支持的Linux平台(频率,体系结构,资源消耗等)下正常运行。
  2. 似乎Torvalds根本不希望支持多个调度程序

说明:

由于调度程序是单独的计划(也就是内核不支持),因此仅包含调度程序就意味着将人们集中在那些调度程序上(安全补丁,维护补丁,加快对新内核发行版的适应性……)。这意味着对尚不确定将来是否存在的项目进行金融投资。

他们还很年轻。最好的例子是BFS 常见问题解答中“如何扩展”中的解释。

在这部分内容的后面告诉我们,当您拥有大量逻辑CPU时,BFS存在性能问题。这一点要花在服务器和高端PC上(给出了16个数字,因此,这意味着一台简单的1000美元服务器会因此而出现性能问题)。因此,您不包括此修补程序的Ubuntu Server,也排除了现在很容易达到此数目的物理双CPU配置。

如果他们使用另一个调度程序,Ubuntu将无法实现。可伸缩性胜于性能。

与往常一样,有许多“如果” ...:

  • 如果Ubuntu的每个用户都是桌面用户
  • 如果每个Ubuntu用户的每台计算机都是调度程序的正确PC

实际上,最好的方法是当前的方法:如果用户对硬件感兴趣并且对硬件感兴趣,请让他们应用所需的调度程序。

在一段时间内应用它可能会更好(因为正如我所说,可伸缩性是一个大问题,未来会增加处理器的数量)。但是会给别人带来严重的麻烦。

额外来源:

该链接可能不会永远存在,这是我在h-online上找到的有关BFS的文章。这是我找到的最正式的。但是,如果您用谷歌搜索,可能会找到真实的陈述。我认为可能是在kerneltrap上。

请参阅文章凤凰标题的第三段。如果链接消失,我将在这里引用它:

目前,似乎不太可能将BFS集成到Linux主开发分支中,因为Linus Torvalds已经明确表示他不想维护多个调度程序。此外,Linux发行商倾向于使用单个内核映像,该映像无需特殊配置即可在各种系统上实现最佳性能。CFS开发人员可能会在BFS覆盖的区域中改进其调度程序,这对用户社区来说是一个好处。

Linus Torvalds的主题了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.