ハードドライブのパーティションを使用して、Amazon EC2 インスタンスのスワップ領域として動作するようにメモリを割り当てる方法を教えてください。
最終更新日: 2022 年 2 月 21 日
ハードドライブのパーティションを使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスワップ領域として動作するようにメモリを割り当てます。どうすればよいですか?
簡単な説明
メモリをスワップ領域として割り当てるには、以下の手順を実行してください。
1. スワップ領域のサイズを計算します。
2. スワップ領域としてハードディスクにパーティションを作成します。
3. スワップ領域を設定します。
スワップ領域として使用するスワップファイルを作成することもできます。詳細については、「スワップファイルを使用して、Amazon EC2 インスタンスのスワップ領域として動作するようにメモリを割り当てる」を参照してください。
注意:RAM の容量が満杯になると、インスタンスはスワップ領域を使用します。スワップ領域は、RAM の容量が少ないインスタンスのために使用できますが、より多い RAM の代わりにはなりません。スワップ領域はインスタンスのハードドライブにあるため、実際の RAM に比べてパフォーマンスは低下します。メモリを増やしたり速くしたりするには、インスタンスサイズを増やすことを検討してください。
解決方法
スワップ領域のサイズを計算する
スワップ領域は、物理 RAM の 2 倍 (最大 2 GB の物理 RAM) にする必要があります。2 GB を超える場合は、物理 RAM を 1 倍追加します。スワップ領域は 32 MB 未満を下回ってはいけません。
システム RAM の量 | 推奨されるスワップ領域 |
2 GB 以下の RAM | RAM 容量の 2 倍 (32 MB 以上) |
2 GB 以上の RAM 容量 (最大 64 GB) | RAM 容量の 0.5 倍 |
64 GB 以上 | ワークロードまたはユースケースに依存 |
スワップ領域としてハードドライブにパーティションを作成する
1. SSH を使用して、インスタンスにログインします。
2. 使用可能なボリュームを一覧表示する:
$ sudo fdisk -l
3. パーティショニングするデバイスをリストから選択します。この例では、デバイス /dev/xvda を使用します。
$ sudo fdisk /dev/xvda
4. 新しいパーティションを作成する:
-> n
5. パーティションタイプを選択します。この例では、プライマリを使用します。
-> p
6. パーティション番号を割り当てます。この例では、パーティション 2 を使用します。
-> 2
7. Enter キーを押して、デフォルトの「第一セクタ」を承認します。
8. スワップファイルのサイズを入力します。この例では、2 GB の RAM があり、作成されたパーティションは 4 GB (+4G として指定) です。
-> +4G
9. 保存して終了します。
-> w
スワップ領域のセットアップ
1. partprobe コマンドを使用して、パーティションテーブルの変更を OS に通知します。
$ partprobe
2. 前のステップで作成したスワップパーティションを使用して Linux スワップ領域を設定します。この例では、スワップパーティションは /dev/xvda2 です。
$ mkswap /dev/xvda2
3. スワップ領域としてパーティションを追加します。
$ sudo swapon /dev/xvda2
4. 現在のスワップ領域を表示します。
$ sudo swapon -s
次のような出力が表示されます。
Filename Type Size Used Priority
/dev/xvda2 partition 4194300 0 -1
5. 再起動後、スワップメモリ割り当てを永続化してください。
$ sudo vim /etc/fstab
$ /dev/xvda2 none swap sw 0 0
$ reboot