スワップの追加が必要か確認する
スワップはメモリ不足時にシステムが使える領域を提供しますが、RAMよりはるかに低速です。Linuxは未使用メモリをキャッシュに使い、必要になると解放するため、freeではなくavailableの列を確認してください。スワップへのアクセスが常時発生している場合、サーバーにはメモリの増設かプロセス数の削減が必要であり、スワップを増やしても解決しません。
free -h
swapon --show
vmstat 1 5スワップファイルを作成する
まずディスクの空き容量を確認し、ファイルを作成してアクセス権を制限し、フォーマットして有効にします。このファイルを読み取れるのはrootだけでなければなりません。
df -h /
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show再起動後も使えるようにする
/etc/fstabをバックアップしてから、1行追加します。fstabに誤りがあると正常に起動できなくなるおそれがあるため、再起動前にファイルを検証してください。
sudo cp /etc/fstab /etc/fstab.backup
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo findmnt --verifyスワップファイルのサイズを変更する
スワップを無効にする前に、その内容が利用可能なメモリに収まることを確認してください。swapoffは内容をRAMに戻すため、収まらない場合はプロセスが強制終了されることがあります。次にファイルを無効にし、新しいサイズで作り直して有効にします。パスが変わらなければ、fstabの行はそのままで構いません。
free -h
sudo swapoff /swapfile
sudo fallocate -l 4G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfileBtrfsとzram
Btrfsではスワップファイルに特別な対応が必要です。btrfs filesystem mkswapfileを使い、スワップファイルを含むサブボリュームはスナップショットに含められない点に注意してください。zramはスワップファイルと異なり、圧縮したページをディスクではなくRAMに保持します。また、fstabではなく専用のサービスで管理されます。
CH-J Server Managerのスワップ管理
System MonitorはRAMの内訳、RAMとスワップの履歴、各スワップ領域の種類、優先度、使用状況を表示します。rootまたはsudoの権限があれば、ext2/3/4、XFS、Btrfs、F2FS上の/swapfile*、/swap/<name>、/var/lib/swap/<name>にある64 MiBから64 GiBのスワップファイルを作成、有効化、無効化、サイズ変更、削除できます。アプリケーションは、内容がメモリに収まらないスワップの無効化を拒否し、変更のたびに/etc/fstabをバックアップします。ここではzramとzswapは読み取り専用です。