EC2にSwap領域を作成
会社で自分の部署用にAWSのアカウントを作って、使い放題にしたのだけれど
さすがにアホみたいにおカネがかかると悪いのでプロトタイプ(という名目の
趣味プログラム)を開発する環境はmicroインスタンスを使うことにした。
以前、RubyではなくPythonを使うことにしたと言ったけれど、さすがに
WebアプリケーションはRailsを使いたいのでさくっとインストールしてみた。
が、PassengerをインストールしようとしたところSwap領域がないと怒られる。
$ free total used free shared buffers cached Mem: 1020188 458516 561672 60 11548 392484 -/+ buffers/cache: 54484 965704 Swap: 0 0 0
たしかにない、、、
スワップ領域は実メモリに入りきらないプロセスをページ単位、あるいは
プロセス単位で退避させる領域。スワップ領域にはパーテションかファイルを
利用するのだけれど、今回はファイルで。
ファイルはddコマンドで作成。入力ファイルに/dev/zeroを指定すると
出力ファイルがオールビットゼロで埋められる。
# dd if=/dev/zero of=/swapfile bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 14.2321 s, 75.4 MB/s
これでスワップファイルができた。
# ll /swapfile -rw-r--r-- 1 root root 1073741824 Jun 15 07:45 /swapfile
ファイルのパーミッションを600か644に変更 。
# chmod 600 /swapfile
mkswapコマンドでswapfileをスワップ領域として初期化。
# mkswap /swapfile Setting up swapspace version 1, size = 1048572 KiB no label, UUID=720e7b93-f9f3-40d9-be4d-c871e920055e
# swapon /swapfile
スワップ領域ができた。
# swapon -s Filename Type Size Used Priority /swapfile file 1048572 0 -1