BFSは現在メインラインカーネルの一部ではないため、独自のカーネルをダウンロード、パッチ、およびコンパイルする必要があります。メインラインカーネルにはスケジューラが1つだけ含まれており、同じコードベースに複数のスケジューラ、またはオンザフライの切り替え可能なスケジューラを含めることは意図されていません(それはおそらく実行可能なことです)。単純に複雑すぎて、努力する価値はありません。
したがって、システムでBFSを取得するには:
ただし、特に新しいカーネルバージョンでは、CFSよりもBFSを実行する利点は非常に小さいです。 CFSは常に改善されていることに留意してください。
これについて少し調べてみると、Linux用のスケジューラは2つしかないようです。 CFS と BFS です。
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
「PPAとは何か、どうすれば使用できるか」 の説明に従って、Ubuntu Software Centerを使用してパッチをインストールすることもできます。
このパッチは、新しい(パッチを適用した)カーネルをインストールします。これは、ブート時にGRUBメニューに接尾辞「-ck」とともに表示されます。再起動し、ブートメニューで適切なカーネルを選択して、スケジューラを切り替えます。
パフォーマンスについて
私の場合、デスクトップPCのバックグラウンドで Folding @ Home (Intel i7 2600Kの8コアの8つのF @ Hスレッド)を実行すると、BFSが大幅に向上します。大きな違いですが、間違いなく顕著です)、バックグラウンドのF @ Hアプリケーションは20〜25%高速です。
このシナリオでは、対話型デスクトップの使用と長時間実行されるCPU負荷の高いバックグラウンドタスクを同時に処理するため、CFSは一度に1つのコアをアイドル状態のままにする傾向がありました。 BFSは、すべてのコアをバックグラウンドタスクに100%使用することではるかに優れているように見えますが、インタラクティブなデスクトップタスクに高速応答を提供します。
おそらく、負荷のあらゆる可能な組み合わせの下で最適に実行される単一のスケジューラーはありませんが、BFSの方が優れている場合があります。
以下はPrecise Pangolin(Ubuntu 12.04)YMMVで私のために働いたが、
pf-kernel
の一部です今日(2013年12月)UbuntuシステムにBFSをインストールする最良の方法は、 pf-kernel をインストールすることです。これは基本的に、多数のパフォーマンスパッチが適用された標準カーネルです。これらのパッチは次のとおりです。
Ubuntuのpf-kernel
パッケージをインストールする方法については、「 pf-kernelでLinuxデスクトップのパフォーマンスを向上させる 」という記事に記載されています。ただし、これらの手順はやや時代遅れです。関連するDebianパッケージの存在しないソースを指します。しかし、「 pf-kernel for Ubunt 」(pk-kernel
フォーラムで)というスレッドを見つけました。このスレッドでは、Debianパッケージは フォーラムユーザーbig_bumのDropboxアカウント からダウンロードできます。
pf-kernel
をインストールしています私がインストールしたマシンは古い32ビットのラップトップなので、必要なlinux-headers
およびlinux-image
パッケージをマシンの~/kernel
というディレクトリにダウンロードすることから始めました。
(上記の Dropboxアカウント に移動して、これらのパッケージの64ビット以降のバージョンを見つけてください。)
その後、「 pf-kernelを使用してLinuxデスクトップのパフォーマンスを向上させる 」の指示に従い、次のコマンドを実行しました。
$ cd ~/kernel
$ Sudo dpkg -i *.deb
すべてがスムーズに動作するように見えるので、再起動しました。
クイックインスペクションは、それが機能していることを示しているようです。コマンドuname -a
は、pf-kernel
を使用していることを報告します。
Linux siobhan 3.12.2-pf + #6 SMP PREEMPT Mon Dec 2 19:09:52 EET 2013 i686 i686 i386 GNU/Linux
cat /sys/block/sda/queue/scheduler
は、BFQが現在のディスクスケジューラであることを示しています(sda
ディスクの場合):
noop deadline cfq [bfq]
BFSを使用して新しいカーネルにパッチを適用してインストールします。別々のカーネルを使用する必要があります。同じカーネルイメージで両方を使用する方法はありません(特にオンザフライで切り替えるには)