zram

Debianのサーバーを立ち上げましたが,久しぶりにLinuxいじりの気分になって,Manjaro ARMを復活させたりして遊んできました.

その中で気がついたのは,旧来,swap専用パーティションやルートディバイス上のファイルをswapに使ってきましたが,最近のdistroではzramというディバイスをswapに使っていることです.

zramについては,ネットで調べればいろいろ詳しく書いてあると思いますが,主記憶の一部を仮想的なディスクに使うものです.同じく主記憶を使うtmpfsとの違いは,保存するデータを圧縮する点のようです.

もちろん,旧来のディスク(実ディスク)のswapも併用可能ですが,zramにうんと高いプライオリティーが与えられて,実ディスクの方に書き込まれることはほとんどないようです.

この方法,Raspberry Piなどディスクとして書き込みが低速なSDカードを使っている場合特に効果的なのはいうまでもありません.

残念ながらSlackwareARM 15.0ではデフォルトではzramが使われませんが,ネットの情報を参考にして設定したら,うまく動くようになりました.

$ swapon
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -2
/dev/zram0 partition 4G 0B 100

こんな感じです.

下記のページを参考にしました.元記事ではzram0〜3までの4つ,それぞれのサイズを512MBにしていますが,筆者の場合は,zram0ひとつだけ作って,その代わりサイズを4GBにしました(RAM 8GBのマシンです).

Notes:
1. 100など.
100など.