■AWS EC2にはスワップ領域が存在しない
AWSのEC2ですが、一定のインスタンス以上にならないとスワップ領域が存在しません。なので、メモリが不足=即OOMKillerの餌食になります。そもそも、メモリが足りなくなってスワップが一定以上発生してしまったら、パフォーマンスがガタ落ちするのでなくてもよい、と判断することもできます。
ですが、ちょっとメモリが足らなくなったくらいでサーバが落ちても困るので、スワップ領域を設定しておくと少し安心かと思います。また、スワップが発生すると当然ディスクI/Oが発生します。I/O回数やIOPSによって料金が発生する可能性があるので、気をつけましょう。
■概要
通常は、スワップ領域専用のパーティションなどを用意して実行するのが普通ですが、今回はファイルを利用します。
ファイルを作成し、そのファイルをスワップ領域として利用する方法です。メリットとしては、EBSの追加などが不要で手軽にスワップ領域を有効にすることができます。
■手順1 ファイルの作成とアクセス権限を調整
まずはファイルを作成します。以下のコマンドでは、512MBのファイルが作成されます。もし、1GB作成したい場合は、countを1024に設定してください。
# dd if=/dev/zero of=/newswapfile bs=1M count=512
# chmod 600 /newswapfile
■手順2 スワップファイルの初期化
先ほど作成したファイルをスワップに利用できるようにします。
mkswap /newswapfile
■手順3 スワップ領域の有効化
作成したスワップファイルを有効にします。
swapon /newswapfile
これで、スワップ領域を設定することができます。では。