土. 10月 8th, 2022

はじめに

AWSで稼働しているwordpressのmysqlが突如down!
原因を探っていくと、高負荷時にOutOfMemoruになりOOM Killerが発動したことがわかった

原因

AWSのkusanagi AMIはデフォルトでswap設定されていない。デフォルトでswapの設定がされてなく、memoryがフルになると、すぐにOOM killerが発動されてしまう

対処

swapの設定を適切にした

cat /proc/swaps
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
free -m

fstabにswapfileの設定を追加

/swapfile   swap        swap    defaults        0   0

加えてやったこと

かなり簡易的な監視だけど、もし必要なミドルウェアが落ちてしまった場合、自動で立ち上げるようcronをいれた。

* * * * * ps ax |grep -v grep | grep -q mysql || sudo systemctl start mysql
* * * * * ps ax |grep -v grep | grep -q nginx || sudo systemctl start nginx

その後安定稼働している