Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスワップファイルとして動作するようにメモリを割り当てようと思います。方法を教えてください。
簡単な説明
物理 RAM がすでに使用されている場合、Amazon EC2 インスタンスは物理 RAM の短期的な代替としてスワップスペースを使用します。
実際に使用されていない 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 - スワップスペースの追加