linuxデスクトップ環境をたったの3ステップで高速化する方法

各所で話題になっていますが、Linuxを劇的に高速化する方法が発見されました*1 *2 *3。特にブラウザなど複数のアプリケーションを同時に起動した状態では、体感速度がびっくりするほど向上します。

高速化する方法も簡単です。カーネルの再構築という難しい作業は不要で、設定ファイルを数行書き換えるだけです。是非試しましょう!

ステップ-1: ~/.bashrc の編集

~/.bashrc の末尾に以下の4行を追加します。

if [ "$PS1" ] ; then
           mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
           echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi

ステップ-2: /etc/rc.local の編集

/etc/rc.local の末尾に以下の2行を追加します(2010/11/24更新。不要なmkdirコマンドを一つ削除しました)

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user

ステップ-3: 再起動

システムを再起動します。


作業はこれだけです。これだけで、Linuxがきびきび動くようになります。大発見ですね。

補足(その1)

ubuntu は設定方法が違うそうです

詳細は http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html を見ましょう。

(2010年11月24追記) fedoraslackware などでも設定方法が異なる場合があるようです。詳細は補足3を見てください。

補足(その2)

この設定は、http://gihyo.jp/admin/clip/01/linux_dt/201011/18 にあるカーネルパッチと同様の効果があります。しかし

  • 現時点ではカーネルパッチのできが悪い点(LKMLで問題点が指摘されています)
  • 手軽に試せる点(カーネルを再構築しなくても恩恵を受けられる)

を考えると当面はこの3ステップで高速化する方法を選んだ方が得策だと思います。

補足(その3) (2010年11月24追記)

上記設定を行うと /sys/fs/cgroup/cpu/user というディレクトリが出来上がります。ubuntu の場合はディレクトリ名が違って /dev/cgroup/user です。

そして、新しいプロセス(≒プログラム、アプリケーション)が起動すると、/sys/fs/cgroup/cpu/user/<プロセスID> というディレクトリが自動生成されます。

そのようなディレクトリができない場合は、以下のように少しpathを変えて試してみましょう。詳細は未確認ですがfedoraはこのように少しパスを変えるとうまく行ったそうです。

~/.bashrc に追記する部分を以下のものに変更

if [ "$PS1" ] ; then
           mkdir -m 0700 /sys/fs/cgroup/user/$$
           echo $$ > /sys/fs/cgroup/user/$$/tasks
fi

/etc/rc.local の末尾は

mount -t cgroup cgroup /sys/fs/cgroup -o cpu
mkdir -m 0777 /sys/fs/cgroup/user

補足(その4)

動作原理について気になる人は、cgroups.txt を見ましょう。
http://www.mjmwired.net/kernel/Documentation/cgroups.txt

cgroups.txt はカーネルソースコードに同梱されているファイルです。最新版を読みたい場合は
カーネルソースコードを展開して、そのなかの Documentation/cgroups.txt を見ると良いです。