小桜町喫茶店

日常とか仕事とかプログラミングとか

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コマンドでカーネルスワップ領域の使用を開始。

# swapon /swapfile 

スワップ領域ができた。

# swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file    1048572 0   -1