🍵
Swapメモリの作成・削除
サーバ等のLinux環境でメモリ不足で困ったときの対応としてSwapメモリを作成する方法をまとめておきます。
一時的な対処だった場合に、作成したSwapメモリを削除してクリーンに戻す方法も記載します。
メモリ不足になっている状態自体は好ましいことではないので、本当はサーバ自体のメモリを増設するべきですが、
- オンプレ等で簡単にメモリの増設ができない😵
- AWS EC2 などのクラウドインスタンスでも、常時稼働しているサーバで冗長構成等もないので気軽に停止してスペックアップできない🤢
- メモリを増やすとなると費用がかかるし、各所に申請等しなくてめんどくさいので、ちゃちゃっと対処したい😈
- その他
インフラ周りを触るのはめんどくさいのでとりあえず対応したい😇
こんな場合にSwapメモリを使って乗り切りたい場面はあると思います。
もちろん、正当な理由?でSwapメモリが必要な場合も使える手順です。
Swapメモリの作成
スワップファイルの作成
ここでは仮に1GBのスワップ領域を作成するとします。
スワップファイルのパーミッションも適切に設定しておきます。
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo chmod 600 /swapfile
bsの値 × countの値がスワップ領域のサイズとなるので、例えば bs=4M count=1024
とすれば4GBのスワップメモリが作成されることになります。
スワップ領域の有効化
sudo mkswap /swapfile
sudo swapon /swapfile
スワップ領域の確認
スワップ領域を確認します。
sudo swapon -s
swapメモリが有効になっていることが確認できます。
$ free -h
total used free shared buff/cache available
Mem: 1.9G 1.4G 243M 33M 312M 376M
Swap: 1.0G 0B 1.0G
再起動してもSwap領域が有効になるようにする
このままだと、サーバを再起動した場合Swap領域が消えてしまいます。
再起動後もスワップが有効とする必要があれば、追加で設定をします。
sudo vi /etc/fstab
ファイルに以下の行を追記して保存します。
/swapfile swap swap defaults 0 0
Swapメモリの削除
不要になったスワップ領域は削除します。
sudo swapoff /swapfile
sudo rm /swapfile
Discussion