您现在的位置是:主页 > 数据库技术 > 数据库技术

Linux调度器BFS有哪些作用

IDCBT2022-01-10服务器技术人已围观

简介本篇内容主要讲解“Linux调度器BFS有哪些作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux调度器BFS有哪些作用”吧! BFS 是

本篇内容主要讲解“Linux调度器BFS有哪些作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux调度器BFS有哪些作用”吧!

BFS 是一个进程调度器,可以解释为“脑残调度器”。这古怪的名字有多重含义,比较容易被接受的一个说法为:它如此简单,却如此出色,这会让人对自己的思维能力产生怀疑。

BFS 不会被合并进入 Linus 维护的 Linux mainline,BFS 本身也不打算这么做。但 BFS 拥有众多的拥趸,这只有一个原因:BFS 非常出色,它让用户的桌面环境达到了前所未有的流畅。在硬件越来越先进,系统却依然常显得迟钝的时代,这实在让人兴奋。

进入 2010 年,Android 使用 BFS 作为其操作系统的标准调度器,这也证明了 BFS 的价值。

BFS vs CFS,性能测试比拼

BFS 出现后得到了很多用户的好评,得到了诸如“快,感觉的到的快”,“桌面的急速未来”等评价。这些词让人侧目,于是我便开始四下寻找关于 BFS 的测试数据,希望能找到说明这一切的数字或者曲线。但结果却颇令人失望。。。

Jens Axboe 的测试

BFS 发布后不久,即 2009 年 9 月,Ingo Molnar 发布了他的测评报告,比较了 CFS 和 BFS。作为 CFS 的作者 , 他所宣称的测试结果并不让人觉得意外:CFS 在各个方面优于 BFS。不过人们对他的测评结果有不同的反应,有人认同,也有人心存疑惑。Jens Axboe 就是心存怀疑的一位,他自己写了一个名为 Latt.c 的程序,试图测试调度器的两个神秘属性:”Interactivity”和 “Fluidness”。

他的测试结果刚好相反,表明 BFS 在交互性方面优于 CFS,而且其 CPU 利用率更高。不过 BFS 稳定性较差,并且在某些情况下也表现出了糟糕的交互性问题。

从 Jens 的测试数据来看,BFS 稍微优于 CFS,但优势并非如同坊间流传的那样夸张。感兴趣的读者可以在 lkml 的邮件列表中找到 Jens 测试的详细数据:http://thread.gmane.org/gmane.linux.kernel/886319/focus=887636

结果让翘首以盼的我有些失望,并没有看到 BFS 遥遥领先。反而有些类似奥运会男子百米的决赛,究竟谁是冠军一时竟难以分辨。但值得注意的是,该测试意外地让人们认识到了 CFS 本身的一个严重问题。

CFS 的 sleeper fairness 特性导致在一些情况下将出现严重的调度延迟,在 Jens 的 xmodmap测试中甚至出现了 10s 的延迟。并且围绕 Jens 的测试,人们纷纷发表声明,使用 CFS 时有很多交互性问题,比如编译内核时,同时的音频视频会出现严重的停顿,而使用 BFS 则没有这些问题。不过这些 CFS 的问题都在关闭了 sleeper fairness 特性后神秘地消失了。

这让 CFS 调度器的开发者不得不暂时关闭了 sleeper fairness 特性,并一度曾号称将在即将发布的 2.6.32 中正式关闭该特性,直到问题被解决为止。令人吃惊的是,Ingo 在一周之内就抛出了新的 patch,即 Gentle Fairness。使用这个 patch,10s 延迟消失了,其他的关于鼠标滞后,视频停顿的关于 CFS 的负面报告也都消失了。。。

标签:

很赞哦! ()

本栏推荐