すべてのプロダクト
Search
ドキュメントセンター

:Linux インスタンスでスワップ領域を構成する方法

最終更新日:Apr 25, 2025

Linux では、システムがより多くのメモリ リソースを必要とし、物理メモリが使い果たされた場合、スワップ領域(スワップ スペース)を使用できます。スワップ スペースを使用して、非アクティブなプロセスとデータの一時的なストレージを提供し、物理メモリが使い果たされたときにメモリ不足が原因で発生する問題を回避できます。スワップ スペースは物理メモリの拡張として機能し、物理メモリが使い果たされたときにシステムがスムーズに動作し続けることができます。

重要
  • スワップ領域を有効にすると、メモリ I/O パフォーマンスが低下する可能性があります。Elastic Compute Service(ECS)インスタンスのメモリが不足している場合は、インスタンス タイプを変更して、インスタンスの物理メモリを増やすことをお勧めします。ビジネスでスワップ領域を有効にする必要がある場合は、このトピックの手順に従ってください。

  • ベーシッククラウドディスクを使用する場合は、I/O パフォーマンスが低いため、スワップ領域を使用しないでください。パフォーマンスの低下や I/O ボトルネックが発生する可能性があります。他のカテゴリのクラウドディスクは、ビジネス要件に基づいてスワップ領域を使用できます。スワップ領域の操作を頻繁に行わないようにし、システムのパフォーマンスと安定性を確保してください。

表示 スワップ領域の構成

  1. Linux インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. 次のコマンドを実行して、スワップ領域の構成を表示します。

    swapon --show
    • コマンド出力が空の場合、システムにはスワップ領域がありません。ビジネス要件に基づいてスワップ領域を構成できます。

      image

    • 次の図に示すメッセージが表示された場合、システムにはスワップ領域があります。ビジネス要件に基づいてスワップ領域を無効化できます。

      image

スワップ領域の構成

スワップ領域の有効化

  1. 次のコマンドを実行して、スワップ ファイルを作成します。

    sudo dd if=/dev/zero of=/var/swap bs=1M count=1024
    説明

    コマンドの次のパラメータに注意してください。

    • of パラメータの /var/swap 値は変数であり、スワップ領域の ID を示します。 ID を実際の スワップ領域 ID に置き換えます。変数値は、既存の領域の ID と同じにすることはできません。

    • bscount の値は、作成されるスワップ ファイルのサイズを示します。値を実際の値に置き換えます。たとえば、bs が 1 MB に設定され、count が 1024 に設定されている場合、スワップ ファイルのサイズは 1 GB に設定されます。

  2. 次のコマンドを実行して、ファイルをスワップ領域としてフォーマットします。

    sudo mkswap /var/swap

    image

    説明

    mkswap コマンドを実行してスワップ領域を作成するときに mkswap: error: swap area needs to be at least 40 KiB のようなエラー メッセージが表示された場合、指定されたスワップ領域ファイルは必要な最小サイズである 40 KB より小さくなっています。この場合は、より大きなスワップ ファイルを作成してください。

  3. 次のコマンドを実行して、スワップ領域を有効にします。

    sudo chmod 600 /var/swap
    sudo swapon /var/swap
  4. 次のコマンドを実行して、スワップ領域が有効になっているかどうかを確認します。

    swapon --show

    次のコマンド出力は、スワップ領域が有効になっていることを示しています。

    image

  5. スワップ領域の情報を /etc/fstab ファイルに書き込み、システム起動時に領域を自動的にマウントするようにシステムを構成します。

    echo '/var/swap none swap defaults 0 0' | sudo tee -a /etc/fstab
  6. スワップ領域に関する情報を表示します。

    cat /etc/fstab

    次のコマンド出力が返されます。

    image

  7. ECS インスタンスを再起動し、システム起動時にスワップ領域が自動的に起動するかどうかを確認します。

    swapon --show
  8. (オプション) /etc/rc.local ファイルを変更して、swapoff -a コマンドが存在するかどうかを確認します。コマンドが存在する場合は、コマンドを swapon -a に変更します。/etc/rc.local ファイルのコマンドが /etc/fstab ファイルのコマンドと一致することを確認して、スワップ領域が期待どおりに使用できるようにします。

関連操作

Linux では、swappiness パラメータを設定できます。有効な値: 0 から 100。

  • swappiness 値が小さいほど、より多くの物理メモリが使用されることを示します。スワップ領域は、物理メモリが使い果たされた後にのみ使用できます。

  • swappiness 値が大きいほど、より多くのスワップ領域が使用されることを示します。この場合、データはメモリからスワップ領域に移動されます。

重要

スワップ設定が不適切だと、システム パフォーマンスが低下したり、仮想メモリの使用量が期待どおりにならない場合があります。 swappiness パラメータは、実際のビジネス シナリオとパラメータの機能を十分に理解した上で構成することをお勧めします。注意して進めてください。パラメータ値を変更するかどうかが不明な場合は、デフォルト設定を使用することをお勧めします。

  1. /etc/sysctl.conf ファイルの swappiness パラメータの値を変更します。この例では、アイドル状態の物理メモリが 10% 未満の場合にのみスワップ領域が使用されます。

    vm.swappiness=10
  2. ファイルを保存して閉じます。次のコマンドを実行して、変更を有効にします。

    sudo sysctl -p
  3. 次のコマンドを実行して、新しい swappiness 値が有効になっているかどうかを確認します。

    cat /proc/sys/vm/swappiness

    次のコマンド出力は、新しい swappiness 値が有効になっていることを示しています。

    image

スワップ領域の無効化

  1. 次のコマンドを実行して、スワップ領域を無効にします。

    sudo swapoff /var/swap
    説明

    /var/swap はスワップ領域の ID を指定します。 ID を実際の スワップ領域 ID に置き換えます。

  2. etc/fstab ファイルを変更し、スワップ関連のマウント情報を削除し、自動スワップ マウント機能を無効にします。

    /var/swap none swap defaults 0 0
  3. ファイルを保存して閉じます。次のコマンドを実行して、スワップ領域が無効になっているかどうかを確認します。

    swapon --show

    コマンド出力が空の場合、スワップ領域は無効になっています。

    image