NetWalker(PC-T1)にcompcacheをインストールして高速化

 NetWalker(PC-T1)にcompcacheというものを使用してswap領域を圧縮した上でRAMに確保し高速化します。前回カーネルが入っていることが前提です。PC-Z1にはlzo_compress.ko, lzo_decompress.koが元から入っているようなのですが、PC-T1には入っていないためです。
 こことかここを大いに参考にさせていただきました。

ビルドに必要なパッケージのインストール

 ビルドする際に必要なパッケージをインストールします。前回のカーネル再構築を行っているはずなので既にインストールされているはずです。

sudo apt-get install build-essential

compcacheのダウンロードとビルド

 compcacheをダウンロードしてビルドします。参考ページの通りバージョンは0.5.4を使用しました。

$ wget http://compcache.googlecode.com/files/compcache-0.5.4.tar.gz
$ tar xvzf compcache-0.5.4.tar.gz
$ cd compcache-0.5.4
$ make

compcacheを使ってみる

 さて、ビルドに成功したら実際にswapとして使用してみます。

$ sudo ./use_ramzswap.sh

Loading modules ...
Setting up swap device ...
Done!

 上記のように表示されていれば成功です。

 念のため確認してみましょう。

$ swapon -s
Filename Type Size Used Priority
/dev/mmcblk0p1 partition 1060248 0 -1
/dev/ramzswap0 partition 120584 0 100
 上記のように/dev/ramzswap0が表示されていればcompcacheは動作しています。/dev/mmcblk0p1はSDカードを一部swapとして利用しているので表示されていますが、そういう設定をしていない場合は表示されません。

起動時に自動で動作するように設定

 このままではNetWalkerを再起動すると動作しません。起動時に自動的に動作するように設定します。

 カーネルモジュールをコピーします。

$ sudo cp ramzswap.ko /lib/modules/2.6.28-19-sendai-20120224/extra/
$ sudo cp sub-projects/allocators/xvmalloc-kmod/xvmalloc.ko /lib/modules/2.6.28-19-sendai-20120224/extra/
$ sudo depmod -a

 起動時に読み込まれるように設定します。

$ sudo vi /etc/modules
lzo_compress
lzo_decompress
xvmalloc
ramzswap

 オプションで確保する容量を設定します。

$ sudo vi /etc/modprobe.d/options
options ramzswap disksize_kb=102400

 起動時にswapとして動作するように設定します。

$ sudo vi /etc/fstab
/dev/ramzswap0 swap swap defaults,pri=100 0 0

再起動

 以上で設定は終了です。再起動して確認します。

$ sudo reboot

 無事に起動したら、

$ swapon -s
 /dev/ramzswap0が表示されていれば成功です。