ジャンカーな日々

こころのすさんだ管理人[る~]がAndroid/Windows/Linux/OSX/iOS/パーツなどの話題やお買い得商品を紹介していきます

Raspberry Pi Raspbian でメモリを圧縮(zram)して快適にしよう

私のの自宅ではRaspberry Piがいろいろな用途に使われているので、Raspberry Piの最適化は死活問題になっている
基本、自宅ファイルサーバーだったり、マインクラフトサーバだったりするわけだが、いかんせんメモリがType B+でも512MBしかないので
何とかできないものかと、あれこれやってみたのがコレ
[ zram compression ]、いわゆるメモリを圧縮して、ディスクスワップよりは早い圧縮RAMスワップを生成するもの

スクリプト
https://github.com/mystilleef/FedoraZram
を参考にさせてもらった、Raspbianで動かない箇所とか、ステータス表示がないとかあったので

まず、起動スクリプトを書く
# vim /etc/init.d/zram

中身はこんなかんじ

#!/bin/bash
### BEGIN INIT INFO
#Provides: zram
#Required-Start:
#Required-Stop:
#Default-Start: 2 3 4 5
#Default-Stop: 0 1 6
### END INIT INFO

start() {
    mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching ':digit:+')
    modprobe zram
    sleep 1
    #only using 50% of system memory, comment the line below to use 100% of system memory
    mem_total_kb=$((mem_total_kb/2))
    echo $((mem_total_kb * 1024)) > /sys/block/zram0/disksize
    mkswap /dev/zram0
    swapon -p 100 /dev/zram0
}

stop() {
    swapoff /dev/zram0
    sleep 1
    rmmod zram
}

status() {
    cat /proc/swaps|grep "Filename\|zram"
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        RETVAL=1
esac



書いたら、実行権限つけて

# chmod +x /etc/init.d/zram

起動してみる

# /etc/init.d/zram start

Setting up swapspace version 1, size = 224384 KiB
no label, UUID=adf1274c-4e42-4033-941d-36833483357d

こんな感じに、表示が出ればOK

一応ステータス表示で

# /etc/init.d/zram status

Filename                                Type            Size    Used    Priority
/dev/zram0                              partition       224384  0       100

こんな感じに見えればOK、確保されたメモリ自体は本来のサイズが使い切られるまでは使われない
メモリからあふれ始めると、メモリを圧縮し始めるという挙動

常用できそうな感じだったら
# update-rc.d zram defaults

とやって、システム起動時に動くようにしておくといいかも

ちなみに
Ubuntu 12以降だと
apt-get install zram-config
でインストールできる

Redhat系だとepelレポジトリを有効にしておけば
yum install zram
でインストールできる

なお、Androidもrootがとれれば、4.0以降でスクリプトを書けば動くので、メモリ足らない中華タブとかでは案外有効に使えるかもね

ジャンカーな日々はamazon.co.jpを宣伝しリンクすることによって サイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。ちょっとだけ紹介ついでにお小遣いをいただいております(_ _)