ハードドライブのパーティションを使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスワップ領域として動作するようにメモリを割り当てたいと考えています。
簡単な説明
メモリをスワップ領域として割り当てるには、以下の手順を実行してください。
- スワップ領域のサイズを計算します。
- スワップ領域としてハードディスクにパーティションを作成します。
- スワップ領域を設定します。
スワップ領域として使用するスワップファイルを作成することもできます。「スワップファイルを使用して、Amazon EC2 インスタンスのスワップ領域として動作するようにメモリを割り当てる」を参照してください。
注: RAM の容量が満杯になると、インスタンスはスワップ領域を使用します。スワップ領域は、RAM の容量が少ないインスタンスのために使用できますが、より多い RAM の代わりにはなりません。スワップ領域はインスタンスのハードドライブにあるため、実際の RAM に比べてパフォーマンスは低下します。メモリを増やしたり速くしたりするには、インスタンスサイズを増やすことを検討してください。
解決策
スワップ領域のサイズを計算する
最高 2 GB の物理 RAM に対して、スワップ領域は物理 RAM の 2 倍に相当することがベストプラクティスです。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. パーティションタイプを選択します。この例では、primary を使用します。
\-> 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. 次のコマンドを使用して、再起動後にスワップメモリの割り当てを永続化します。
blkid コマンドの UUID を出力します。
$ sudo blkid
前の出力からスワップパーティションの UUID をコピーします。vi や nano などのテキストエディタを使用して、/etc/fstab ファイルに以下を追加します。
UUID=xxxxxxx none swap SW 0 0
6. ファイルを保存し、再起動します。
OS を再起動したら、free-h コマンドを使用して、スワップメモリの割り当てが維持されていることを確認します。
関連情報
スワップ領域 (Red Hat ウェブサイト上)