Linuxサーバではメモリ使用率が高くなるとスワップ領域を使用するようになります。 しかし、スワップ領域も空き領域も少なくなるとシステムが正常に動作しなくなり、最悪サーバを再起動することになります。 この記事では、UbuntuやCentOSサーバでスワップファイルを作成し、スワップ領域を拡張する方法について説明します。
スワップファイルの作成
まずは、ルート権限に昇格してから以下のコマンドでスワップファイルを作成します。 以下の例では 4096MB(4GB)スワップ領域を作成しています。
~]# sudo su -
~]# BLOCK_SIZE=$(( 1024 * 4 ))
~]# echo $BLOCK_SIZE
~]# dd if=/dev/zero of=/swapfile bs=1M count=$BLOCK_SIZE
~]# chmod 0600 /swapfile
~]# mkswap /swapfile
~]# swapon /swapfile
作成できたら、free -m コマンドで実行してスワップファイル領域が増えたことを確認します。 以下の例では Swap: の行の total が 2099 から 6195 に変化し、4096MB(4GB)スワップ領域が増えた後の様子です。
~]$ free -m
total used free shared buff/cache available
Mem: 3641 1863 118 1047 1659 501
Swap: 6195 794 5401
スワップファイルの永続化
swapon はサーバを再起動すると設定が元に戻ってしまい、スワップファイルではなくなるため、設定を永続化したい場合はスワップファイルの設定を /etc/fstab に書いておく必要があります。 /etc/fstab に設定することで起動時にスワップファイルの設定が適用されます。
~]# echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
~]# cat /etc/fstab
以上です。