なんだかサイトが重い。ちょっと負荷がかかる事をして気が付きました。
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。
これで大丈夫はなはず。