Ubuntuにスワップスペースを追加する方法


アプリケーションのメモリ不足の問題を監視する最も簡単な方法の1つは、サーバーのスワップサイズを増やすことです。この記事では、Ubuntuサーバーにスワップファイルを追加する方法について説明します。

ステップ1:スワップ情報を確認する

開始する前に、次のコマンドを実行して、システムに使用可能なスワップスペースがすでにあるかどうかを確認してください。

$ sudo swapon --show

出力が表示されない場合は、現在システムに使用可能なスワップスペースがないことを意味します。

freeコマンドを使用して、使用可能なスワップスペースがないことを確認することもできます。

$ free -h

上記の出力から、システムにアクティブなスワップがないことがわかります。

ステップ2:パーティションの使用可能なスペースを確認する

スワップスペースを作成するには、まず、現在のディスク使用量を確認し、システムにスワップファイルを作成するのに十分なスペースがあることを確認する必要があります。

$ df -h

/のあるパーティションには、スワップファイルを作成するのに十分なスペースがあります。

ステップ3:Ubuntuでスワップファイルを作成する

次に、1GBのサイズのfallocateコマンドを使用して、Ubuntuの root(/)ディレクトリに swap.img というスワップファイルを作成します(サイズは次のように調整できます)。必要に応じて)、示されているようにlsコマンドを使用してスワップのサイズを確認します。

$ sudo fallocate -l 1G /swap.img
$ ls -lh /swap.img

上記の出力から、正しい容量、つまり1GBのスワップファイルが作成されたことがわかります。

ステップ4:Ubuntuでスワップファイルを有効にする

Ubuntuでスワップファイルを有効にするには、まず、 root ユーザーのみがファイルにアクセスできるように、ファイルに正しいアクセス許可を設定する必要があります。

$ sudo chmod 600 /swap.img
$ ls -lh /swap.img

上記の出力から、 root ユーザーのみが読み取りおよび書き込み権限を持っていることがわかります。

次に、次のコマンドを実行してファイルをスワップスペースとしてマークし、スワップファイルがシステムでの使用を開始できるようにします。

$ sudo mkswap /swap.img
$ sudo swapon /swap.img

次のコマンドを実行して、スワップスペースが使用可能であることを確認します。

$ sudo swapon --show
$ free -h

上記の出力から、新しいスワップファイルが正常に作成され、Ubuntuシステムが必要に応じてそれを使用し始めることが明らかです。

ステップ5:スワップファイルをUbuntuに永続的にマウントする

スワップスペースを永続的にするには、スワップファイル情報を/etc/fstab ファイルに追加し、次のコマンドを実行して確認する必要があります。

$ echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
$ cat /etc/fstab

ステップ6:Ubuntuでのスワップ設定の調整

スワップを使用するときにUbuntuのパフォーマンスに影響を与える設定が必要な設定がいくつかあります。

Swappinessは、システムがRAMからスワップスペースにデータをスワップする量(および頻度)を指定するLinuxカーネルパラメーターです。このパラメータのデフォルト値は「60」で、「0」から「100」までの任意の値を使用できます。値が大きいほど、カーネルによるスワップスペースの使用量が多くなります。

まず、次のコマンドを入力して、現在のswappiness値を確認します。

$ cat /proc/sys/vm/swappiness

現在のswappinessの値である60は、デスクトップでの使用には最適ですが、サーバーの場合は、より低い値、つまり10に設定する必要があります。

$ sudo sysctl vm.swappiness=10

この設定を永続的にするには、 /etc/sysctl.conf ファイルに次の行を追加する必要があります。

vm.swappiness=10

変更する可能性のある別の同様の設定は、 vfs_cache_pressure です。この設定は、システムが他のデータよりもiノードとdentryの詳細をキャッシュする量を指定します。

procファイルシステムにクエリを実行すると、現在の値を確認できます。

$ cat /proc/sys/vm/vfs_cache_pressure

現在の値は100に設定されています。これは、システムがキャッシュからiノード情報をすばやく削除することを意味します。これを50のようなより安定した設定に設定することをお勧めします。

$ sudo sysctl vm.vfs_cache_pressure=50

この設定を永続的にするには、 /etc/sysctl.conf ファイルに次の行を追加する必要があります。

vm.vfs_cache_pressure=50

完了したら、ファイルを保存して閉じます。

ステップ7:Ubuntuでスワップファイルを削除する

新しく作成されたスワップファイルを削除または削除するには、次のコマンドを実行します。

$ sudo swapoff -v /swap.img
$ sudo rm -rf /swap.img

最後に、スワップファイルエントリを/ etc/fstabファイルから削除します。

それで全部です!この記事では、Ubuntuディストリビューションでスワップファイルを作成する方法について説明しました。この記事に関してご不明な点がございましたら、下のコメントセクションでお気軽にご質問ください。