晴耕雨読

working in the fields on fine days and reading books on rainy days

Linuxのスワップファイルを増やす方法

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

以上です。