見出し画像

RDSのメモリ使用率の確認方法

結論

1.拡張モニタリングを有効にするなど設定すればメモリ使用率を監視することは可能。設定が慣れてないと面倒、かつCloudWatch無料枠を超えると料金が発生する(?)

2.代替策としては、メモリ空き容量とメモリ上限から使用率を計算する。
メモリ使用率
  = メモリ使用量 / メモリ上限
  = (メモリ上限 - メモリ空き容量(※1)) / メモリ上限(※2)

(※1)メモリ空き容量(FreeableMemory)はCloudWatchで容易に確認可能。

(※2)メモリ上限はインスタンスタイプでググればすぐ出てくる。


背景

もうすぐリリースする案件によりトランザクションが増加することが予想される。
前任者が転職してしまいリソースが不足しないかの確認状況が不明。

急ぎ、リソース不足することがないかを確認することになった。
委託先ベンダーに確認したところRDSのメモリ使用率が直近1週間で最大70%であることが判明。

RDSのメモリ使用率としては80~90%が通常だという情報(※3)もあるが、万が一メモリ不足でシステム停止、レスポンス遅延が発生すると顧客に影響が出る。

メモリ使用率の監視を委託先に依頼したいが、見積に入っていないので保守工数での対応と言われるのがオチ。
こちらでメモリ使用率を監視する方法を模索することになった。

(※3)

抜粋:『Amazon RDS for MySQL では、インスタンスで利用可能なメモリの 80% から 90% がデフォルトのパラメータで割り当てられます。』

蛇足

RDSメモリ空き容量が2ヶ月で0.3GB減少しており、時間経過と比例しているように見える。
つまり、ストックデータが増えるほど空き容量も減少している可能性がある。
フローデータのみではなくストックデータの増加でもメモリ使用率が上昇し、メモリが枯渇する可能性はあるということだ。
ストックデータの洗い替え、リソースの監視の検討が引き続き必要となる見込み。

この記事が気に入ったらサポートをしてみませんか?