スワップは、物理RAMメモリの量がいっぱいになったときに使用されるディスク上のスペースです。 LinuxシステムでRAMが不足すると、非アクティブなページがRAMからスワップスペースに移動されます。
スワップスペースは、専用のスワップパーティションまたはスワップファイルのいずれかの形式をとることができます。通常、仮想マシンでUbuntuを実行している場合、スワップパーティションは存在せず、唯一のオプションはスワップファイルを作成することです。
このチュートリアルでは、Ubuntu18.04システムでスワップファイルを追加するために必要な手順について説明します。
このチュートリアルを続行する前に、次のように入力して、Ubuntuインストールでスワップがすでに有効になっているかどうかを確認してください。
sudo swapon --show
出力が空の場合は、システムでスワップスペースが有効になっていないことを意味します。
それ以外の場合、以下のようなものが表示された場合は、マシンですでにスワップが有効になっています。
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 1.9G 0B -2
可能ですが、1台のマシンに複数のスワップスペースがあることは一般的ではありません。
スワップファイルの作成#
スワップをアクティブにするには、ログインしているユーザーにsudo権限が必要です。この例では、1G
を追加します スワップ。さらにスワップを追加する場合は、1G
を置き換えます 必要なスワップスペースのサイズで。
以下の手順を実行して、Ubuntu18.04にスワップスペースを追加します。
-
スワップに使用されるファイルを作成することから始めます:
sudo fallocate -l 1G /swapfile
fallocate
の場合 がインストールされていないか、fallocate failed: Operation not supported
というエラーメッセージが表示されます 次に、次のコマンドを使用してスワップファイルを作成します。sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
rootユーザーのみがスワップファイルの書き込みと読み取りを実行できる必要があります。次のように入力して、正しい権限を設定します。
sudo chmod 600 /swapfile
-
mkswap
を使用します ファイルにLinuxスワップ領域を設定するユーティリティ:sudo mkswap /swapfile
-
次のコマンドを使用してスワップファイルをアクティブ化します。
sudo swapon /swapfile
変更を永続的にするには、
/etc/fstab
を開きます ファイル:sudo nano /etc/fstab
次の行を貼り付けます:
/ etc / fstab/swapfile swap swap defaults 0 0
-
swapon
のいずれかを使用して、スワップがアクティブであることを確認します またはfree
以下に示すように、コマンド:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
sudo free -h
total used free shared buff/cache available Mem: 488M 158M 83M 2.3M 246M 217M Swap: 1.0G 506M 517M
Swappiness値の調整#
Swappinessは、システムがスワップスペースを使用する頻度を定義するLinuxカーネルプロパティです。 Swappinessの値は0〜100です。値を小さくすると、カーネルは可能な限りスワップを回避しようとしますが、値を大きくすると、カーネルはスワップスペースをより積極的に使用するようになります。
デフォルトのswappiness値は60です。次のコマンドを入力して、現在のswappiness値を確認できます。
cat /proc/sys/vm/swappiness
60
ほとんどのLinuxシステムではswappinessの値60で問題ありませんが、本番サーバーでは、より低い値を設定する必要がある場合があります。
たとえば、swappinessの値を10に設定するには、次のコマンドを実行します。
sudo sysctl vm.swappiness=10
このパラメータを再起動後も永続的にするには、次の行を/etc/sysctl.conf
に追加します。 ファイル:
vm.swappiness=10
最適なswappiness値は、システムのワークロードとメモリの使用方法によって異なります。最適な値を見つけるには、このパラメータを少しずつ調整する必要があります。
スワップファイルの削除#
スワップファイルを非アクティブ化して削除するには、次の手順に従います。
-
次のように入力して、スワップスペースを無効にすることから始めます。
sudo swapoff -v /swapfile
-
次に、スワップファイルエントリ
/swapfile swap swap defaults 0 0
を削除します/etc/fstab
から ファイル。 -
最後に、
rm
を使用して実際のスワップファイルファイルを削除します コマンド:sudo rm /swapfile