スワップは、物理RAMメモリの量がいっぱいになったときに使用されるディスク上のスペースです。 LinuxシステムでRAMが不足すると、非アクティブなページがRAMからスワップスペースに移動されます。
スワップスペースは、専用のスワップパーティションまたはスワップファイルのいずれかの形式をとることができます。通常、仮想マシンでUbuntuを実行している場合、スワップパーティションは存在せず、唯一のオプションはスワップファイルを作成することです。
このチュートリアルでは、Ubuntu20.04でスワップファイルを追加する方法について説明します。
スワップは、物理メモリの代わりと見なされるべきではありません。スワップスペースはハードドライブの一部であるため、物理メモリよりもアクセス時間が遅くなります。システムのメモリが常に不足している場合は、RAMを追加する必要があります。
通常、スワップファイルのサイズは、システムに搭載されているRAMの量によって異なります。
- 2GB未満のRAMを搭載したシステム -RAMの2倍の量。
- 2〜8GBのRAMを搭載したシステム -RAMの容量と同じサイズ。
- 8GBを超えるRAMを搭載したシステム -少なくとも4GBのスワップ。
スワップファイルをアクティブ化できるのは、rootまたはsudo権限を持つユーザーのみです。
スワップファイルの作成#
この例では、2 GB
を作成します スワップファイル。さらにスワップを追加する場合は、2G
を置き換えます 必要なスワップスペースのサイズで。
以下の手順を実行して、Ubuntu20.04にスワップスペースを追加します。
-
まず、スワップとして使用されるファイルを作成します:
sudo fallocate -l 2G /swapfile
fallocate
の場合 ユーティリティがシステムに存在しないか、fallocate failed: Operation not supported
というエラーメッセージが表示されます 、次のコマンドを使用してスワップファイルを作成します。sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
-
ファイルの権限を
600
に設定します 通常のユーザーがファイルを読み書きできないようにするには:sudo chmod 600 /swapfile
-
ファイルにLinuxスワップ領域を作成します:
sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
-
次のコマンドを実行して、スワップファイルをアクティブ化します。
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 2G 0B -1
sudo free -h
total used free shared buff/cache available Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi Swap: 2.0Gi 10Mi 1.9Gi
Swappiness値の調整#
Swappinessは、システムがスワップスペースを使用する頻度を定義するLinuxカーネルプロパティです。値は0〜100の間です。値を小さくすると、カーネルは可能な限りスワップを回避しようとしますが、値を大きくすると、カーネルはスワップスペースをより積極的に使用するようになります。
Ubuntuでは、デフォルトのswappiness値は60
に設定されています 。次のコマンドを入力して、現在の値を確認できます。
cat /proc/sys/vm/swappiness
60
60
のswappiness値が ほとんどのLinuxシステムでは問題ありませんが、実稼働サーバーでは、より低い値を設定する必要がある場合があります。
たとえば、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