2010年11月23日火曜日

噂の200行カーネルパッチの簡易対応をしてみました

リーナス氏も絶賛していると噂の200行カーネルパッチにいつて、カーネルビルドを伴わずに実行する簡易代替方法があることを知りました。あまりに簡単な方法だったので手元の Debian Lenny のマシンで実行してみました。

詳しい情報はこちらから。

Alternative To The "200 Lines Kernel Patch That Does Wonders" Which You Can Use Right Away

Debian Lenny の場合には ubuntu の方法がよいようです。前半部に書かれている一般的な方法では /sys/fs へ新しくディレクトリを作ることができずエラーとなってしまうからです。

1. /etc/rc.local を編集します。

 # vi /etc/rc.local

 最下部にある exit 0 をコメントにします。
# exit 0

 そして次の行を後尾へ追加します。

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

2. ユーザー(自分)のディレクトリの中にある .bashrc の変更

 $ vi ~/.bashrc

 最下部へ次の行を追加します。

if [ "$PS1" ] ; then
mkdir -p -m 0700 /dev/cgroup/cpu/user/$$ > /dev/null 2>&1
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

3. cgroup_clean というスクリプトを新規に作ります。

 # touch /usr/local/sbin/cgroup_clean
 # vi /usr/local/sbin/cgroup_clean

 書き込むスクリプトはこの2行です。
#!/bin/sh
rmdir /dev/cgroup/cpu/$*

 スクリプトが実行できるように実行権限を与えます。

 # chmod +x /usr/local/sbin/cgroup_clean

4. 再起動 動作確認


どのような原理で動作が速くなるのかはよく解りませんが、いつも使っているパソコンが体感上わずかながら速くなったように感じました。プラシーボ効果ですが(笑)。もしかすると本当は全然速くなっていないのかも。定量的に計測する方法がなくて。

この高速化対策を施すのはいいのですが、今後ディストリビューター側で何らかの対応(カーネル側にパッチだと思います)があると思いますので、高速化対応した内容を元に戻すことも範疇に入れてメモを残すなどをして実施した方がよいと思います。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。