Swap メモリを設定する / CentOS Stream release 9

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

CentOS Stream release 9 にSwapメモリを設定します。

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

環境

実施日2024-06-9
サーバさくらのVPS 2G
OSCentOS Stream release 9
cat /etc/redhat-release
CentOS Stream release 9

経緯

CentOS Stream release 9 を使用していて、サーバが急に重くなってWEBサイトも開かなければFTPにも繋がらない、SSHにさえも接続できなくなるという現象がありました。

原因を調べてみるとSwapメモリの設定がされていません。

もともとローカル環境の調査用としていたのですが、同居させているシステムが増えてきたことで今回の問題が発覚することになりました。

原因調査

ひとまず top で確認してみると load average が大変なことになっていました。

そして気になるのが kswapd0 です。

top

「スワップ?」ということでメモリを見てみます

free -m

Swap 0 0 0

おっ!
スワップが設定されていないのかな?

スワップメモリが設定されていないのに、メモリが溢れたからスワップに逃がそうとしたいのに「スワップ無いじゃん、どうしたら!」と困っている kswapd0 さんという形でしょうか

Swap メモリを設定する

ということで、swap メモリを設定すると良さそうです。

よく言われるのは「実メモリと同程度」

今回は 4GB のメモリなので、スワップメモリも 4GB で設定してきます。

free -n
# スワップファイルを作成
fallocate -l 4G /swapfile

# 権限を設定
chmod 600 /swapfile

# スワップファイルをスワップ領域として設定
mkswap /swapfile

# スワップファイルを有効にする
swapon /swapfile

# 有効になったことを確認
swapon --show

スワップファイルを永続化する
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

確認

free -m

これで安心です。