SWAPをUbuntuに設定する。EC2だとやっぱり初期で0でした。

なんだかサイトが重い。ちょっと負荷がかかる事をして気が付きました。
EC2のCentOSテンプレートから立ち上げたインスタンスって、初期スワップメモリがゼロだったよなぁ。

free

コマンドを叩いてみると、

              total        used        free      shared  buff/cache   available
Swap:             0           0           0

やっぱりスワップ、ゼロじゃん。Ubuntuでもいっしょじゃん。
物理メモリを消化するとあっという間にパフォーマンスがガタ落ち(というか鯖落ち)しちゃいまいした。

じゃ設定……と思ったのですが、ここにきてCentOSとの大きな違いを発見です。

CentOSだとrc.localやらにスクリプトを仕込んで行っていたのですが Ubuntuだと少し違うみたいですね。
ちゃんと、fstabでマウントさせてあげる必要があるっぽい。

ではやっていきましょう。

最初にボリュームにあったファイルを作成

例えば、2Gのスワップファイルを作成する場合は以下のコマンドを実行。

sudo fallocate -l 2G /swapfile

ルートに swapfile ができるはず。

パーミッションを変更

sudo chmod 600 /swapfile

スワップ領域としてマークする

sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=44e5da0d-42b8-4d5f-be92-8d4c9f024309

スワップ領域を有効化

sudo swapon /swapfile

あらためて free コマンドを叩くと追加されていました。

              total        used        free      shared  buff/cache   available
Swap:       2097148           0     2097148

再起動しても大丈夫なように

再起動するとSwapの設定がクリアされてしまうので、/etc/fstab の最後に以下を追記。

sudo vi /etc/fstab

ファイルを開いて、

/swapfile none swap sw 0 0

この行を追加すればOK。

これで大丈夫はなはず。