サーバーが常にメモリ不足を報告し、メモリ不足によってサービスが強制終了されることがよくある場合、物理メモリを増やさずに仮想メモリとしてスワップ領域を有効にすることは良い選択肢です。私が購入した DigitalOcean VPS の 512M メモリは基本的に不十分でしたが、VPS のホストが SSD を使用しており、通常の読み書き速度は 300MB/s 以上です。スワップを有効にすると、パフォーマンスがかなり向上しました、特に大量のメモリを消費するスクリプトを処理する場合には。
スワップ領域の作成原則: 1. 作成するスワップ領域のサイズは物理メモリの容量よりも大きくする必要がありますが、過度に大きくするとディスクスペースの無駄になる可能性があります。 2. もしメモリ IO リクエストが頻繁で、単一のスワップ領域の IO キュー待ち時間が長い場合は、複数のスワップ領域を作成することができます。 3. 原則として、最も高速な IO デバイスに優先して作成します。 作成手順: 1. スワップ領域用の空白ファイルを作成します。
1GB の SWAP スワップ領域用の空白ファイルを作成#
dd if=/dev/zero of=/swap bs=1M count=1024
通常、物理メモリの 2〜2.5 倍のサイズのファイルをスワップ領域として作成します。
- mkswap を使用してファイルを swap ファイルシステムにフォーマットします。
mkswap -f /swap
-f ファイルを swap スワップ領域として使用#
- 作成したスワップファイルを有効にします。
swapon /swap
- 必要に応じて、起動時に自動的にスワップファイルを有効にするように設定できます。/etc/fstab を編集し、次の行を追加します。
/swap swap swap defaults 0 0 # 起動時にスワップを有効にする
- スワップを無効にしたい場合やスワップのサイズを調整したい場合は、swapoff コマンドを使用してスワップを無効にします。
swapoff /swap
スワップを無効にした後は、対応するスワップファイルを削除してスワップ領域を削除できます。スワップ領域のサイズを調整する必要がある場合は、最初から作成手順をやり直すことができます。