各所で話題になっていますが、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
補足(その1)
ubuntu は設定方法が違うそうです
詳細は http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html を見ましょう。
(2010年11月24追記) fedora や slackware などでも設定方法が異なる場合があるようです。詳細は補足3を見てください。
補足(その2)
この設定は、http://gihyo.jp/admin/clip/01/linux_dt/201011/18 にあるカーネルパッチと同様の効果があります。しかし
を考えると当面はこの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 を見ると良いです。