はじめに
スワップ領域についてよく分からないため、有識者にご教示いただいた内容を本記事
記載しました。
スワップ領域とは
物理メモリがいっぱいになった時にハードディスク上にメモリを保存する領域です
基本的にはスワップ領域は緊急時に使うものです。
※「スワップ領域とは」以下の記事が参考になりました。
https://e-words.jp/w/%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97%E9%A0%98%E5%9F%9F.html
スワップ領域を作成するには指定したパーティションをすべてスワップ領域する又は
ファイルをスワップ領域として設定することがあるそうです。
※「スワップ領域の作成方法」以下の記事が参考になりました。
https://kazmax.zpp.jp/linux_beginner/mkswap.html
EC2にスワップ領域を作成手順は以下のサイトが大変参考になりました。
https://engineer-blog.ajike.co.jp/ec2-swap/
スワップ領域の中身を空にして良いか
スワップ領域を空に出来ないかを考えたところ、以下の2つのパターンがあることを知りました。
スワップ領域を解放するのは本番環境の場合は動いているプログラムに影響が出る可能性があるため、あまりお勧めではありません。プログラムが落ちる原因に繋がります。
プログラムが落ちて良い環境の場合はスワップ領域を解放しても良いと思います。
一時的にスワップ領域を使用している場合
一時的に負荷が上がってメモリが上限に達してスワップ領域が増える場合があります。
その場合は負荷が下がった際はスワップ領域のサイズが減る可能性があります。
常時スワップ領域を使用している場合
常時スワップ領域を使っているなことがあれば、それはリソースがカツカツなのでスペックアップを上げる必要があります。
プログラムやプロセスは仕事を始めるときにメモリを確保し、仕事が終わったら解放するため、
常時ずっと動き続けるようなプログラムがスワップ領域を使用している場合は解放されないケースがあるそうです。そのため、そのプログラムを終了したらスワップ領域が解放されると思います。
※プログラムが落ち切らないゾンビプロセスということもあります。
ゾンビプロセスとは
終了したはずのプロセスが資源を占有した状態でシステムに残るプロセスのことです。
以下の記事が参考になりました。
https://e-words.jp/w/%E3%82%BE%E3%83%B3%E3%83%93%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9.html