ファイルシステムにスワップファイルを作成

root(/)ディレクトリにswapfileという必要なサイズのファイルを割り当てます。

スワップファイルを作成する最良の方法は、fallocateプログラムを使用することです。このコマンドは、指定したサイズのファイルを即座に作成します。~

4GBのファイルを作成。

sudo fallocate -l 4G /swapfile


次のように入力して、正しい容量のスペースが確保されたことを確認できます。

ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Apr 25 11:14 /swapfile


ファイルは、適切な容量のスペースを確保して作成されました。

スワップファイルの有効化


適切なサイズのファイルが使用可能となったので、実際にこれをスワップ領域に変換する。

まず、root権限を持つユーザーのみが内容を読み取ることができるように、ファイルのアクセス許可をロックする必要があります。これにより通常のユーザーがファイルにアクセスできなくなるため、セキュ~リティのため。

次のように入力して、rootのみがアクセス できるようにします。

sudo chmod 600 /swapfile


次のように入力して、アクセス権限の変更を確認します。

ls -lh /swapfile
-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile


ご覧のとおり、読み取りおよび書き込みフラグが有効になっているのはrootユーザーのみ。
次のように入力して、ファイルをスワップ領域としてマークできます。

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf


ファイルをマークした後、スワップファイルを有効にして、システムが使用できるようにします。

sudo swapon /swapfile


次のように入力して、スワップが使用可能であることを確認。

sudo swapon --show


NAME      TYPE  SIZE USED PRIO
/swapfile file 4096M   0B   -2


freeユーティリティの出力を再度確認して、結果を確証する。

free -h
              total        used        free      shared  buff/cache   available
Mem:          981Mi       123Mi       644Mi       0.0Ki       213Mi       714Mi
Swap:         4.0Gi          0B       4.0Gi


スワップは正常にセットアップされ、オペレーティングシステムは必要に応じて使用を開始します。

スワップファイルの永続化


先の変更により、現在のセッションのスワップファイルが有効になりました。しかし、再起動すると、サーバーはスワップ設定を自動的に保持しません。これを変更するには、スワップファイルを/etc/fstabファイルに追加します。

何か問題が生じた場合に備えて、/etc/fstabファイルをバックアップします。

sudo cp /etc/fstab /etc/fstab.bak


次のように入力して、スワップファイル情報を/etc/fstabファイルの最後に追加します。

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab


次に、スワップ領域を調整するために更新できるいくつかの設定を確認します。

スワップ設定の調整


スワップを処理するときにシステムのパフォーマンスに影響を与えるいくつかのオプションを設定できます。

swappinessパラメーターは、システムがRAMからスワップ領域にデータをスワップする頻度を設定します。これは、パーセンテージを表す0~100の値です。

値が0に近い場合、カーネルは絶対に必要な場合を除いて、データをディスクにスワップしません。スワップファイルとのやり取りは、RAMとのやり取りよりもはるかに時間がかかり、パフォーマンスが大幅に低下する可能性があるという点で、「コストがかかる」ことを忘れないでください。スワップにあまり依存しないようにシステムに指示すると、通常、システムの動作が高速になります。

値が100に近い場合は、RAMの空き容量をより確保するために、より多くのデータをスワップしようとします。アプリケーションのメモリプロファイルまたはサーバーの使用目的によっては、この方が良い場合もあります。

次のように入力して、現在のswappiness値を確認できます。

cat /proc/sys/vm/swappiness
60


デスクトップの場合、swappinessの設定を60にすることは不適切な値ではありません。サーバーの場合は、値を0に近づけると良いでしょう。

sysctlコマンドを使用して、swappinessを別の値に設定できます。

たとえば、swappinessを10に設定するには、次のように入力します。

sudo sysctl vm.swappiness=10
vm.swappiness = 10


この設定は、次の再起動まで保持されます。/etc/sysctl.confファイルに次の行を追加して、再起動時にこの値を自動的に設定できます。

sudo nano /etc/sysctl.conf


下部で、次の行を追加できます。

/etc/sysctl.conf

vm.swappiness=10


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


トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-23 (月) 21:07:27