|
||
|
カーネルスケジューリングで高速化。ブラウザもフリーズしなくなる高速化パッチの開発2010年11月に発表されたパッチがLinux界で話題になりました。一言で言えばLinuxが非常に高速になる画期的な方法、ということでした。 通常、次のカーネル更新を待つのですが、簡単な設定変更で同じ効果を得られる、というのが特徴です。 高速化紹介の動画では、ウィンドウ移動による再描画などの評価されています。 http://gihyo.jp/admin/clip/01/linux_dt/201011/18?skip いずれこの修正はカーネルに取り込まれるので、それ以前のバージョンのカーネルで効果を発揮するでしょう。 とりあえず2.6.36以前では効果を発揮します。 ちょっと世間を検索すればRedhat、Ubuntu向けの情報がありますが、openSUSE向けの情報は多くありません。 でもちらほら見られるようになりました。 実際に設定してみると、確かに変わりました。 速くなったというより、遅れにくくなったといったところでしょうか。 デスクトップアプリケーションの起動について大きな違いは感じられませんが、やはりブラウザですね。 どうしても遅れがちだった動画の再生、タブの切り替えも速くなったようです。 それまではFirefoxでもGoogleChromeでも、youtubeを複数見ると反応が悪くなったりフリーズするといった症状がありましたが、そちらも解消されています。 快適ですね、フリーズしない生活は。 設定カレントユーザの.bashrcファイルの末尾に下記のコマンドを追加します。>cd ~ >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 注意点は "$PS1" の前後にスペースを入れること。 スペースが足らないと、コンソールを起動するたびに「[$(ppwd \|)\u@\h:\w> ]:command not found」といったエラーが表示されます。 エラー画面 ちなみに$PS1は、コマンドプロンプトの環境変数です。 次はルートで/etc/init.d/boot.localを編集し、以下の行を末尾に追加します。 (他のディストリビューションではrc.localを編集してます) >su #cd /etc/init.d/ #vi boot.local 入力コマンド 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 次にルートで/usr/local/sbin/cgroup_cleanというファイルを作成し、以下のコマンドを入力します。 >su #cd /usr/local/sbin/ #vi cgroup_clean 入力コマンド #!/bin/sh rmdir /dev/cgroup/cpu/$* 作成したファイルに実行権を与えます。 #chmod 755 /usr/local/sbin/cgroup_clean そして自動実行のため、起動パラメータを設定します。 [YaST]-[システム]-[ブートローダ]を起動し、デフォルトの起動メニューを編集します。 そして起動パラメータに「cgroup_enable=memory」を記述します。 GUIを使うのは煩わしい、という人はもちろん直接/boot/grub/menu.lstを編集しても構いません。 最後に再起動します。これで高速化パッチを当てたのと同じ状態になるそうです。 操作感は定量的測定ができないので、デスクトップ撮影でもして比較するしかないですね。 |
|