2010年6月11日金曜日

USBメモリスティックにswap

duponmidさんの記事と若干かぶってしまって申し訳ないですm(__)m

さて、

昨日、swapが有効になってるカーネルのことをぼんやり考えてた。
busyboxにswap関係のコマンドがビルドインされてるのも知ってたので、手動でswap onできるだろうと踏んで作業してみた。
以下、root化必須です。

で、swapパーティションを切るんだけど、SDカードに入れるのもネタがかぶるので、USBメモリスティックに頑張ってもらうことにした。

まず、USBメモリを刺す。
今回は Buffalo RUF2-PS4G-BKが獲物w
小さい、これなら内蔵可能( ̄ー ̄)ニヤリ
でも、I/O速度がいまいち。

おもむろに、M001上でコンソール(ConnectBot)を起動。
コンソールから、su


USBメモリを最初に刺したときは、/udisk に自動的にmountされるのでumountする。
mountされてなかったら、以下の作業はいらん。
# umount /udisk
一応、freeでメモリ状況を見ておく
# free
total used free shared buffers
Mem: 101472 99216 2256 0 192
Swap: 0 0 0
Total: 101472 99216 2256
swapはゼロだね。

USBメモリにパーティションを切る。
うちの環境では、USBメモリが /dev/block/sda にストレージとして認識されていた。
他の環境(例えばM001以外のデバイスとか)は違うプリフィクスになる可能性があるのでちゃんと調べたほうがいい。

具体的には、USBメモリを刺したときの dmesg を見ておく。
# dmesg
<略>
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access USB 2.0 Flash Disk 2.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 2062846 512-byte hardware sectors: (1.05 GB/1007 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 2062846 512-byte hardware sectors: (1.05 GB/1007 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 ←コレコレ
sd 0:0:0:0: [sda] Attached SCSI removable disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
<略>
こんな感じの出力があるハズ。
流れる文字列の中から、USBメモリがデバイス認識された箇所を探し出すこと。

さて、fdisk
# fdisk /dev/block/sda
以下、fdiskでの作業は省略。
要するに、現状のパーティションは全削除、Linux swap のパーティションを1つ切れば十分。とりあえず、128MBだけswapに割り当て。
残りのメモリはお好きなように。
今回の場合swapパーティションは /dev/block/sda1 となった。

パーティションテブールを書き込んでディスクがフラッシュされたところで、
#mkswap /dev/block/sda1
Setting up swapspace version 1, size = 133762560 bytes
UUID=hogehoge-hogehoe
これで、swap領域の完成。

さて、いよいよ swap on。
# swapon /dev/block/sda1
これだけw

本当にonになったか、freeで確認。
# free
total used free shared buffers
Mem: 101472 97176 4296 0 16
Swap: 130620 0 130620
Total: 232092 97176 134916
を、swap 増えてる増えてるw

しばらく、他のアプリなんかを動かしてみる。
USBのLEDがチカチカ光ってアクセスしに行ってるのがわかる。
swapしてる感じ。

再び free
# free
total used free shared buffers
Mem: 101472 97176 4296 0 16
Swap: 130620 2104 128516
Total: 232092 100668 131424
ほほw
swapしてるねー

体感ですが、ややスムーズになるかな?って感じです。
ブックリーダー試してないので(^^ゞ

そんなわけで、手動でswap有効化は可能って事ですね。

ちなみに、swap off は
# swapoff /dev/block/sda1
以上。

要するに、Swapper系のアプリは手動で行った設定をGUIでやってくれる便利なラッパーツールって事です。
もちろん、他に細やかなチューニングもしてくれるものもあるので、やっぱアプリ使ったほうが楽かも。

個人的には、このちっこいUSBメモリを内蔵して、swap領域固定でブート時にスクリプト叩いてswap onにすることを目論んでみたりします(笑)

あ!Wifi offのときは一緒にスリープされるんだった!!
これを何とかせねば・・・・(´・ω・`)

swap on手順は、他のマシンでも応用できるかもしれない。
M001以外の他のマシンでも頑張ってみてください。
\(^o^)/

0 件のコメント:

コメントを投稿