答案1
经过一番研究,Linux 似乎只有两个调度程序:加拿大食品安全局和广义函数法。
在 Ubuntu 10.10 中安装 BFS 的最简单方法是PPA 补丁:
sudo add-apt-repository ppa:chogydan/ppa
sudo apt-get update
sudo apt-get install linux-image-generic-ck linux-headers-generic-ck
您也可以使用 Ubuntu 软件中心安装补丁,具体说明如下“什么是 PPA 以及如何使用它们”。
补丁会安装一个新的(已打补丁的)内核,它将在启动时以后缀“-ck”显示在 GRUB 菜单中。通过重新启动并在启动菜单中选择适当的内核,可以在调度程序之间切换。
绩效
就我而言,跑步折叠@家在桌面电脑的后台(Intel i7 2600K 上的八个内核上有八个 F@H 线程),BFS 明显更好:桌面响应更快(差别不大,但绝对引人注目),而后台 F@H 应用程序速度提高 20-25%。
在此场景中,CFS 同时处理交互式桌面使用和长时间运行的 CPU 密集型后台任务,往往会让一个核心长时间处于闲置状态。BFS 似乎更擅长将所有核心 100% 用于后台任务,同时仍能为交互式桌面任务提供快速响应。
可能没有一个调度程序能够在所有可能的负载组合下都表现最佳,但在某些情况下 BFS 会更好。
答案2
您必须下载、修补和编译自己的内核,因为 BFS 目前不是主线内核的一部分。主线内核仅包含一个调度程序,并不意味着在同一个代码库中有多个调度程序,甚至没有可即时切换的调度程序(即使这是可以做到的)。这太复杂了,不值得付出努力。
因此,为了在您的系统上获得 BFS:
- 获取内核:http://www.kernel.org
- 获取适合您的内核版本的最新 BFS 补丁:http://ck.kolivas.org/patches/bfs/
- 修补、编译,然后启动新内核。
不过,运行 BFS 而不是 CFS 的好处非常小,尤其是在较新的内核版本中。请记住,CFS 正在不断改进。
答案3
不过,下面的方法在 Precise Pangolin(Ubuntu 12.04)上对我有用,但具体方法因人而异。
BFS 是pf-kernel
目前(2013 年 12 月)在 Ubuntu 系统上安装 BFS 的最佳方法似乎是安装pf-内核,它基本上是一个标准内核,应用了一系列性能补丁。这些补丁包括:
网上说明
我pf-kernel
在文章“使用 pf-kernel 获得更好的 Linux 桌面性能及更多功能。” – 但是这些说明有些过时,因为它指向了不存在的相关 Debian 软件包的来源。但我找到了主题“Ubuntu 的 pf-kernel” (在pk-kernel
论坛上),其中提到 Debian 软件包可以从论坛用户 big_bum 的 Dropbox 帐户。
安装pf-kernel
我安装的机器是一台旧的 32 位笔记本电脑,因此我首先将所需的软件包下载linux-headers
到linux-image
我的机器上的一个名为的目录中~/kernel
。
- linux-headers-3.12.2-pf+_3.12.2-pf+-10.00.Custom_i386.deb
- linux-镜像-3.12.2-pf+_3.12.2-pf+-10.00.Custom_i386.deb
(转到上面提到的Dropbox 帐户来查找这些软件包的 64 位和/或更新版本。)
此后,我按照“使用 pf-kernel 获得更好的 Linux 桌面性能及更多功能”,并执行以下命令:
$ cd ~/kernel
$ sudo dpkg -i *.deb
一切似乎都进展顺利,所以我重新启动了。
检查是否有效
快速检查似乎表明它有效,例如命令uname -a
报告我正在使用pf-kernel
:
Linux siobhan3.12.2-pf+#6 SMP PREEMPT 2013 年 12 月 2 日星期一 19:09:52 EET i686 i686 i386 GNU/Linux
并cat /sys/block/sda/queue/scheduler
显示 BFQ 现在是当前的磁盘调度程序(对于磁盘sda
):
noop deadline cfq [bfq]
答案4
使用 BFS 修补并安装新内核。您必须使用单独的内核,无法在同一个内核映像中使用两者(尤其是动态切换它们)