Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第14章 swap領域

Linux の swap 領域は、物理メモリー (RAM) の空き容量がなくなると使用されます。システムがより多くのメモリーリソースを必要とする場合、RAM に空き容量がないとメモリーの非アクティブなページが swap 領域に移されます。RAM の容量が小さいマシンでは swap 領域が役に立ちますが、容量の大きい RAM の代わりとしてはなりません。swap 領域は、物理メモリーよりもアクセスに時間がかかるハードドライブ上にあります。swap 領域は、専用のスワップパーティション (推奨)、スワップファイル、またはスワップパーティションとスワップファイルの組み合わせにすることができます。Btrfs は swap 領域をサポートしないため注意してください。
過去数年、推奨される swap 領域のサイズは、システムの RAM サイズとともに直線的に増加していました。しかし、最近のシステムのメモリーサイズは数百ギガバイトまで増加したため、現在推奨される swap 領域の容量は、システムメモリーではなくシステムメモリーのワークロードの関数であると考えられています。
表14.1「システムの推奨 swap 領域」 は、ご使用のシステムの RAM 容量別に、システムがハイバネートするために十分なメモリーが不要な場合と必要な場合のスワップパーティションの推奨サイズをまとめています。推奨の swap 領域はインストール中に自動的に確定されますが、ハイバネーションも可能にするには、カスタムパーティション分割の段階で swap 領域の編集が必要となります。
表14.1「システムの推奨 swap 領域」 の推奨情報は、メモリーの容量が小さいシステム (1 GB 以下) で特に重要になります。システムで十分な swap 領域を割り当てできないと、安定性の問題や、インストールされたシステムが起動できない問題などが発生する原因となることがあります。
ご使用のシステムが 表14.1「システムの推奨 swap 領域」 に記載されている境界線上 (RAM が 2GB、 8GB または 64GB) になる場合、swap サイズやハイバネートへの対応を決める際は慎重に行なってください。システムリソースに余裕がある場合は、swap 領域を大きくするとパフォーマンスが向上することがあります。140 個を超える論理プロセッサーまたは 3 TB を超える RAM があるシステムには、最低でも 100 GB の swap 領域を確保することが推奨されます。
高速のドライブ、コントローラー、およびインターフェイスを搭載したシステムでは、複数のストレージデバイスに swap 領域を分散すると、swap 領域のパフォーマンスも向上します。

重要

swap 領域として割り当てたファイルシステムおよび LVM2 ボリュームは使用中に変更してはいけません。システムプロセスやカーネルが swap 領域を使用しているときに swap を変更しようとしても変更に失敗します。swap の使用量とその使用場所を確認するには、free および cat /proc/swaps コマンドを使用します。
システムが rescue モードで起動している間に swap 領域を変更してください。詳細は 『Red Hat Enterprise Linux 7 インストールガイド』 の レスキューモードでコンピューターを起動するを参照してください。ファイルシステムのマウントを要求されたら Skip を選択してください。

14.1. Swap 領域の追加

場合によっては、インスト-ルした後にさらに swap 領域の追加が必要になることもあります。例えば、システムの RAM の容量を 1 GB から 2 GB にアップグレードした時点に swap 領域が 2 GB のままかも知れません。メモリー集中型の操作や大容量のメモリーを必要とするアプリケーションを実行する場合には、swap 領域を 4 GB に増加することが有効な対処法となります。
選択肢が3つあります: 新規の swap パーティションの作成、新規の swap ファイルの作成、あるいは、既存の LVM2 論理ボリューム上で swap の拡張。この中で既存論理ボリュームの拡張を推奨致します。

14.1.1. LVM2 論理ボリュームでの swap 領域の拡張

Red Hat Enterprise Linux 7 は、デフォルトで、使用可能なすべての領域をインストール時に使用します。この設定を選択している場合、まず swap 領域として使用するボリュームグループに新しい物理ボリュームを追加しなければなりません。
swap 領域のボリュームグループにストレージを追加した後に、それを拡張することができるようになります。これを実行するには、次の手順に従います (/dev/VolGroup00/LogVol01 ボリュームのサイズを 2 GB 拡張するとします)。

手順14.1 LVM2 論理ボリュームでの swap 領域の拡張

  1. 関連付けられている論理ボリュームの swap 機能を無効にします。
    # swapoff -v /dev/VolGroup00/LogVol01
  2. LVM2 論理ボリュームをサイズ変更して 2 GB 拡張します。
    # lvresize /dev/VolGroup00/LogVol01 -L +2G
  3. 新しい swap 領域をフォーマットします。
    # mkswap /dev/VolGroup00/LogVol01
  4. 拡張した論理ボリュームを有効にします。
    # swapon -v /dev/VolGroup00/LogVol01
論理ボリュームが正常に拡張されたかどうか確認するには、cat /proc/swaps または free を使って swap 領域を確認します。

14.1.2. swap の LVM2 論理ボリュームの作成

swap ボリュームグループを追加します (/dev/VolGroup00/LogVol02 が追加する swap ボリュームであるとします)。
  1. サイズが 2 GB の LVM2 論理ボリュームを作成します。
    # lvcreate VolGroup00 -n LogVol02 -L 2G
  2. 新しい swap 領域をフォーマットします。
    # mkswap /dev/VolGroup00/LogVol02
  3. 次のエントリーを /etc/fstab ファイルに追加します。
    # /dev/VolGroup00/LogVol02 swap swap defaults 0 0
  4. 拡張した論理ボリュームを有効にします。
    # swapon -v /dev/VolGroup00/LogVol02
論理ボリュームが正常に作成されたかどうかテストするには、cat /proc/swaps または free を使って swap 領域を確認します。

14.1.3. swap ファイルを作成する

swap ファイルを追加します。

手順14.2 swap ファイルの追加

  1. 新しい swap ファイルのサイズをメガバイト単位で決定してから 1024 をかけてブロック数を確定します。たとえば swap ファイルのサイズが 64 MB の場合、ブロック数は 65536 になります。
  2. シェルに、以下のコマンドに必要なブロックサイズと等しい count を付けて入力します。
    # dd if=/dev/zero of=/swapfile bs=1024 count=65536
  3. 次のコマンドで swap ファイルを設定します。
    # mkswap /swapfile
  4. swap ファイルのセキュリティーを変更し、あらゆるユーザーが読み取りできないようにします。
    # chmod 0600 /swapfile
  5. swap ファイルをすぐに有効にします。ただし、起動時に自動的に有効にしません。
    # swapon /swapfile
  6. 起動時に有効にするには、次のエントリーを含めるように /etc/fstab を編集します。
    /swapfile swap swap defaults 0 0
    次にシステムが起動すると新しい swap ファイルが有効になります。
新しい swap ファイルが正常に作成されたかどうかをテストするには、cat /proc/swaps または free を使って swap 領域を確認します。