[アップデート]CloudWatch Database Insightsで過去のOSプロセス情報が確認できるようになりました
お疲れさまです。とーちです。
CloudWatch Database Insights(以後DatabaseInsights)の新機能として、過去のOSプロセスの情報を分析できるようになったので紹介します。
とりあえずまとめ
- CloudWatch Database Insightsで、データベースで実行されている任意の時間のOSプロセスの情報を確認可能に
- Aurora PostgreSQLとAurora MySQLの両方で利用可能
- 使用するにはRDS 拡張モニタリングとCloudWatch Database Insightsアドバンスドモードの両方が有効になっている必要あり
- OSプロセス情報が表示されなくてアレ?と思った場合はOSプロセスタブを開き直してみる
実際に試してみる
どういう情報が見れるのかは実際に見たほうが早いと思うので、早速試してみましょう。
まずは以下の設定でマネージメントコンソールからAurora PostgreSQLを作成します。その他の設定はほぼデフォルトにしています。
- インスタンスタイプ:db.t4g.medium
- DBバージョン:Aurora PostgreSQL 16.6
- DatabaseInsights:アドバンスドモード
- 拡張モニタリング:有効
DatabaseInsightsをアドバンストにすることと、拡張モニタリングを有効にする点にだけ注意してください。
pgbenchで負荷をかける
こちらの記事を参考にしてpgbenchで負荷をかけてみます
実は私はpgbench初めて使ったので、若干蛇足ですがインストール手順等も紹介しておきます。(Ubuntu24.04にて実施)
インストール手順は以下です。
sudo apt-get update
sudo apt-get install postgresql-contrib
# インストール確認
pgbench --version
pgbenchの基本的な使い方は以下になります。
# 初期化(データ投入)
pgbench -h <hostname> -p <port> -U <username> -i -s 10 pgbench_test
# ベンチマーク実行
pgbench -h <hostname> -p <port> -U <username> -c 10 -t 1000 pgbench_test
各オプションの説明については以下のページをご参照いただければと思います。
DatabaseInsightsからOS情報を確認してみる
負荷をかけたのでDatabaseInsightsの画面を見てみます。
DatabaseInsightsにはCloudWatchの画面からアクセスします
今回のアップデートで追加されたOSプロセス情報には以下の流れでアクセスします。
アップデート記事によると任意のデータポイントを選ぶとその時間に実行されていたプロセスの情報が表示されるとのことですので、負荷がかかった時間帯を範囲選択してみます
これでOSプロセスのタブに選択した時間帯のプロセス情報が表示されると思っていたのですが、以下のような画面が出て表示されませんでした。
アレと思ったのですが、「イベント」タブを一回開いてから再度「OSプロセス」タブを開くといった感じで タブを行き来すると情報が更新 されました。
対象の時間帯の各プロセスのCPU・メモリ使用量やバッチリ確認できますね!
なお、選択範囲を30秒間などの1分未満の単位にするとOSプロセス情報は表示されませんでした。このあたりは拡張モニタリングを設定する際の OS メトリクスの詳細度 の設定とも絡んでくるのかもしれませんが、未確認です。
表示される情報について
ちなみに各項目の説明については公式ドキュメントを見てみたのですが、説明している箇所が見つけられませんでした。そのため、私の推測ではあるのですが、各列の意味合いとしては以下になるかなと思います。(t4g.mediumの物理メモリは4GBでResidual addressを4GBで割るとだいたいMemory%の値と一致するので合っている・・はず・・)
- CPU %:OS全体のCPUリソースに対する該当プロセスのCPU使用率
- Memory%:OS全体の物理メモリ(RAM)に対する該当プロセスのメモリ使用率
- Virtual memory:プロセスに割り当てられた仮想メモリ容量で物理メモリ(RAM)とスワップ領域を合わせたサイズを表示
- Residual address(常駐メモリ):プロセスが実際に物理メモリ(RAM)上で使用しているサイズ
まとめ
いかがでしたでしょうか?この機能により、データベースの負荷状況とOSプロセスの関係性がより詳細に分析できるようになりました。パフォーマンス問題の調査の際に役立つかもしれませんね。
以上、とーちでした。