Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスワップファイルとしてメモリを割り当てたいと考えています。どうすればよいですか?
簡単な説明
物理 RAM が使用済みである場合、Amazon EC2 インスタンスはスワップ領域を物理 RAM として一時的に代用します。
RAM 内でアクティブに使用されていない領域、または他のデータや命令ほど緊急に必要とされない領域は、スワップファイルに一時的にページングできます。これにより、解放した RAM をより緊急な用途に使用できます。
スワップ領域は、パーティションに作成することもできます。詳細については、「ハードドライブのパーティションを使用して、Amazon EC2 インスタンスのスワップ領域として動作するようにメモリを割り当てる方法を教えてください。」を参照してください。
注意: スワップ領域は、エフェメラルストレージのインスタンスストアボリューム上にのみ作成することをお勧めします。
解決方法
この解決を実行する前に、ファイルシステムでスワップファイルの使用がサポートされていることを確認してください。
注: 一般的なファイルシステム (ext3、ext4、XFS) のほとんどがサポートされています。このことは、他のファイルシステムには該当しない場合があります。ベストプラクティスとして、最新のファイルシステムのドキュメントを確認することをお勧めします。
スワップ領域のサイズを計算する
スワップ領域のサイズを計算する方法については、以下をご参照ください。
スワップファイルを作成する
1. dd コマンドを使用して、ルートファイルシステムにスワップファイルを作成します。コマンドでは、bs とはブロックサイズ、count とはブロック数のことです。スワップファイルのサイズは、ブロックサイズオプションに dd コマンドの count オプションを乗算したものです。これらの値を調整して、希望するスワップファイルのサイズを決定します。
指定するブロックサイズは、インスタンスの使用可能なメモリより小さくする必要があります。そうしないと、「メモリを使い果たしました」というエラーが表示されます。
この dd コマンドの例では、スワップファイルは 4 GB (128 MB x 32) です。
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
2. スワップファイルの読み書きのアクセス許可を更新します。
$ sudo chmod 600 /swapfile
3. Linux スワップ領域のセットアップ:
$ sudo mkswap /swapfile
4. スワップ領域にスワップファイルを追加して、スワップファイルを即座に使用できるようにします。
$ sudo swapon /swapfile
5. 手順が正常に完了したことを確認します。
$ sudo swapon -s
6. /etc/fstab ファイルを編集して、起動時にスワップファイルを起動します。
エディタでファイルを開きます。
$ sudo vi /etc/fstab
ファイルの末尾に次の新しい行を追加し、ファイルを保存して終了します。
/swapfile swap swap defaults 0 0
関連情報
RHEL - スワップ空間の追加