5
6

空きメモリ枯渇のためRDSがリブートされました

突如サービスアラートがなり、調査していたらRDSイベントを確認したところ、
再起動イベントが発生していました。

原因としては空きメモリが枯渇したことによって発生していたのですが、
同じような被害者がでないためにも記事に残しておきます。

なぜ再起動される前に予兆に気づけなかったのか

  • 空きメモリの監視設定をしていなかった

CPUや接続数の監視はしていました。
接続数の制限もデフォルトではメモリ量によってい定まることは認識していましたが、
空きメモリの監視設定を失念していました。

再起動が走る直前一時的に空きメモリが1GB以下になっていましたが、
1GB以下〜10GBの間で変動していたため、一旦3GB以下かつ
データポイントは1回にしています。

現状この設定にしてからアラートは検知していません。

なぜ空きメモリが枯渇したのか

これは再起動される前に検知することができれば
拡張モニタリングの内容とパフォーマンスインサイトの情報を
付き合わせながら分析することができたかもしれません。

再起動が走ってしまったことで根本原因をおうことが
難しくなってしまいました。

現状の推測として特定のトランザクション処理が
ゾンビプロセスのように残ってしまい、
メモリを逼迫させてしまったのではないかと考えています。

当時拡張モニタリングを有効にしていなかったため
有効化の対応も行なっています。

拡張モニタリングを有効化するとAWSサポートの
調査もスムーズに進むそうです。

イベント監視

再起動や他イベントが発生した場合の
調査にかかるリードタイム短縮のためにも
RDSのイベント監視も実装しています。

まとめ

まだRDSの拡張モニタリング有効化および
アラート設定してない方は設定しておくことをお勧めします。

アラートとする対象メトリクスはCloudwatchのダッシュボードの
推奨を参考に設定するのが良さそうです。

参考: アラート推奨確認方法
https://dev.classmethod.jp/articles/cloudwatch-alarm-recommendations/

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6