Raspberry Pi 2でサーバ作ってみる(3) 〜Swapについて〜

RaspberryPiのようにSDをメインストレージに使うシステムだと、
Swapについてはデメリットが大きいためOffにした方がよいかもしれない。
Raspberry PiのSDカード/マイクロSDカードの寿命を延ばす | ものづくりエクスペリメント
一方で、Swapがなかったり、サイズが小さいとハードなタスク(アプリのビルドなど)でコケることもあるっぽい
Raspberry Pi の Arch Linux にスワップを設定して Ruby をビルドする - ヤルキデナイズド
この辺はどういった用途で使うかによって設定した方がよさそう。
自分はというと、いろいろビルドしたりするので、それなりのファイルを準備します。

RaspbianはSwapをdphys-swapfileというアプリから設定させているっぽい
Qaplaの覚書・メモ・備忘録・独言 Raspberry Pi のswap領域変更
いったん、停止してサイズを変更。

#停止
/etc/init.d/dphys-swapfile stop
#2.5GB(2560MB)に設定
nano /etc/dphys-swapfile
#起動
/etc/init.d/dphys-swapfile start

すると警告が。

Starting dphys-swapfile swapfile setup ...
want /var/swap=2560MByte, limiting to 2048MBytes as configured, checking existing: deleting wrong size file (104857600), generating swapfile ... of 2048MBytes
done.

制限で2GBまでっぽい。
やっぱりSwapファイルを作って対応する。

#再度停止
/etc/init.d/dphys-swapfile stop
#削除
apt-get -y remove dphys-swapfile
#2.5GBのSwapファイルを/swpという名前で作成
dd if=/dev/zero of=/swp bs=1024 count=2621440
#Swapファイルにする
mkswap /swp
#Swapの内容をfstabに反映
echo "/swp                                      swap            swap     defaults 0 0" >> /etc/fstab
#fstabの内容を読み込み
mount -a
#Swap表示
swapon -s
;(function(document){ var pres = document.getElementsByTagName("pre") for(var i=pres.length; i--; ){  var el = makeOl(pres[i]) pres[i].appendChild(el) } function makeOl(pre){ if (pre.className.indexOf("gist") !== -1) { return } var ol = document.createElement("ol") , li = document.createElement("li") , df = document.createDocumentFragment() , br = pre.innerHTML.match(/\n/g) || 0 ol.className = "preLine" ol.setAttribute("role", "presentation") // no lang, no line-number if( pre.className && ! /lang-./.test(pre.className) ){ br.length += 1 } for(var i=br.length; i--; ){ var li2 = li.cloneNode(true) df.appendChild(li2) } ol.appendChild(df) return ol } })(document)