第15章 swap 領域
Linux の スワップ領域 は、物理メモリー (RAM) が不足すると使用されます。システムに多くのメモリーリソースが必要で、RAM が不足すると、メモリーの非アクティブなページがスワップ領域に移動します。スワップ領域は、RAM が少ないマシンで役に立ちますが、RAM の代わりに使用しないようにしてください。スワップ領域はハードドライブにあり、そのアクセス速度は物理メモリーに比べると遅くなります。スワップ領域の構成は、専用のスワップパーティション (推奨)、スワップファイル、またはスワップパーティションとスワップファイルの組み合せが考えられます。
過去数年、推奨されるスワップ領域のサイズは、システムの RAM サイズに比例して増加していました。しかし、最近のシステムには通常、数百ギガバイトの RAM が含まれます。結果として、推奨されるスワップ領域は、システムのメモリーではなく、システムメモリーのワークロードの機能とみなされます。
表15.1「システムの推奨 swap 領域」 では、システムの RAM の容量別に推奨されるスワップパーティションのサイズと、システムをハイバネートするのに十分なメモリーが必要かどうかを提供します。推奨されるスワップパーティションのサイズは、インストール時に自動的に確定されます。ハイバネートを可能にするには、カスタムのパーティション分割段階でスワップ領域を編集する必要があります。
重要
表15.1「システムの推奨 swap 領域」 の推奨では、メモリーが少ないシステム (1 GB 以下) で特に重要になります。このようなシステムで十分なスワップ領域を割り当てられないと、不安定になる問題が生じたり、インストールしたシステムが起動できなくなる可能性があります。
システム内の RAM の容量 | 推奨されるスワップ領域 | ハイバネートを許可する場合に推奨されるスワップ領域 |
---|---|---|
⩽ 2 GB | RAM 容量の 2 倍 | RAM 容量の 3 倍 |
> 2 GB ~ 8 GB | RAM 容量と同じ | RAM 容量の 2 倍 |
> 8 GB ~ 64 GB | 最低 4GB | RAM 容量の 1.5 倍 |
> 64 GB | 最低 4GB | ハイバネートは推奨されない |
ご使用のシステムが 表15.1「システムの推奨 swap 領域」 に記載されている境界線上 (RAM が 2GB、 8GB または 64GB) になる場合、swap サイズやハイバネートへの対応を決める際は適宜判断してください。システムリソースに余裕がある場合は、スワップ領域を増やすとパフォーマンスが向上することがあります。
高速のドライブ、コントローラー、およびインターフェースを搭載したシステムでは、複数のストレージデバイスにスワップ領域を分散すると、スワップ領域のパフォーマンスも向上します。
重要
スワップ領域として割り当てたファイルシステムおよび LVM2 ボリュームは、変更時に 使用しない でください。システムプロセスまたはカーネルがスワップ領域を使用していると、スワップの修正に失敗します。free コマンドおよび cat /proc/swaps コマンドを使用して、スワップの使用量と、使用中の場所を確認します。
システムが
rescue
モードで起動している間に swap 領域を変更してください。『Red Hat Enterprise Linux 6 インストールガイド』 の レスキューモードでのコンピューターの起動 を参照してください。ファイルシステムをマウントするように指示されたら、 を選択します。
15.1. スワップ領域の追加
場合によっては、インスト-ルした後にさらに swap 領域の追加が必要になることもあります。たとえば、システムの RAM 容量を 1 GB から 2 GB にアップグレードするときに、スワップ容量が 2 GB しかないとします。メモリーを大幅に消費する操作を実行している場合や、大量のメモリーを必要とするアプリケーションを実行する場合は、スワップ領域を 4 GB に増やすことが有益となる可能性があります。
選択肢が3つあります: 新規の swap パーティションの作成、新規の swap ファイルの作成、あるいは既存の LVM2 論理ボリューム上で swap の拡張。この中では、既存論理ボリュームを拡張することが推奨されます。
15.1.1. LVM2 論理ボリュームでのスワップ領域の拡張
Red Hat Enterprise Linux 6 は、デフォルトで、使用可能なすべての領域をインストール時に使用します。この設定を選択している場合は、まず swap 領域として使用するボリュームグループに新しい物理ボリュームを追加しなければなりません。その手順は、「ボリュームグループへの未割り当てのボリュームの追加」 を参照してください。
swap 領域のボリュームグループにストレージを追加した後に、それを拡張することができるようになります。これを実行するには、次の手順に従います (
/dev/VolGroup00/LogVol01
ボリュームのサイズを 2 GB 拡張するとします)。
手順15.1 LVM2 論理ボリュームでのスワップ領域の拡張
- 関連付けられている論理ボリュームのスワップ機能を無効にします。
# swapoff -v /dev/VolGroup00/LogVol01
- LVM2 論理ボリュームのサイズを 2 GB 増やします。
# lvresize /dev/VolGroup00/LogVol01 -L +2G
- 新しいスワップ領域をフォーマットします。
# mkswap /dev/VolGroup00/LogVol01
- 拡張論理ボリュームを有効にします。
# swapon -v /dev/VolGroup00/LogVol01
論理ボリュームが拡張されたかどうかをテストするには、cat /proc/swaps または free を使用してスワップ領域を調べます。
15.1.2. スワップの LVM2 論理ボリュームの作成
スワップボリュームグループを追加するには(スワップボリューム
/dev/VolGroup00/LogVol02)
を追加します。
- サイズが 2 GB の LVM2 論理ボリュームを作成します。
# lvcreate VolGroup00 -n LogVol02 -L 2G
- 新しいスワップ領域をフォーマットします。
# mkswap /dev/VolGroup00/LogVol02
- 次のエントリーを
/etc/fstab
ファイルに追加します。# /dev/VolGroup00/LogVol02 swap swap defaults 0 0
- 拡張論理ボリュームを有効にします。
# swapon -v /dev/VolGroup00/LogVol02
論理ボリュームが正常に作成されたかどうかをテストするには、cat /proc/swaps または free を使用してスワップ領域を調べます。
15.1.3. スワップファイルの作成
swap ファイルを追加します。
手順15.2 スワップファイルの追加
- 新しいスワップファイルのサイズをメガバイト単位で指定してから、そのサイズに 1024 をかけてブロック数を指定します。たとえばスワップファイルのサイズが 64 MB の場合は、ブロック数が 65536 になります。
- count を必要なブロックサイズと等しくなるには、以下のコマンドを入力します。
# dd if=/dev/zero of=/swapfile bs=1024 count=65536
- 次のコマンドでスワップファイルをセットアップします。
# mkswap /swapfile
- スワップが誰でも読み取り可能にならないようにパーミッションを変更することが推奨されます。
# chmod 0600 /swapfile
- システムの起動時に自動的に swap ファイルは有効にしない場合は、次のコマンドを実行します。
# swapon /swapfile
- システムの起動時に有効にするには、
/etc/fstab
を編集して以下のエントリーを追加します。/swapfile swap swap defaults 0 0
次にシステムを起動すると、新しいスワップファイルが有効になります。
新しいスワップファイルが正常に作成されたかどうかをテストするには、cat /proc/swaps または free を使用してスワップ領域を調べます。