RDSのパフォーマンスインサイトについて調べてみた

2022.06.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、つくぼし(tsukuboshi0755)です!

RDSの機能の一つとして、パフォーマンスインサイト(Performance Insights)というものが存在します。
今回はRDSパフォーマンスインサイトについて、頭の整理を兼ねて深掘りしてみたいと思います。

パフォーマンスインサイトとは?

パフォーマンスインサイトを有効化する事で、RDSのパフォーマンスに関するデータが集計され、AWSコンソール上に可視化されます。

コンソール上で可視化されたグラフから、DBの負荷の原因となっている項目を見つけ、DBの性能改善に役立てる事が可能です。

AWSの公式ドキュメントでは、以下のように記載されております。

平均アクティブセッション(AAS)とは?

パフォーマンスインサイトでは、平均アクティブセッション(AAS)という単位で、DBへの負荷状況を測定します。

AASは、以下のように計算されます。


ex.) 総サンプル数が5で、サンプル毎のクエリを実行しているセッション数が以下の場合

サンプルNo. クエリ実行セッション数
1 2
2 0
3 4
4 0
5 4

AAS = ( 2 + 0 + 4 + 0 + 4 ) / 5 = 2


このAASが高い項目ほど、DBに対してより大きな負荷を与えていると言えます。

パフォーマンスインサイトを有効化する事で、待機(CPU及びIO)/SQL/ホスト/ユーザー別でAASが可視化され、どの項目がDBのボトルネックになっているか分析する事ができるようになります。

特にSQL別でのAASは、非常に有用そうですね。

DBのボトルネックがアプリケーション側で開発しているSQL文にある場合も、パフォーマンスインサイトを有効化する事で、AWSコンソール上で発見可能になります。

AWSの公式ドキュメントでは、以下のように記載されております。

パフォーマンスインサイト画面

AWSの公式動画で、DBでパフォーマンスインサイトを有効化した場合の、パフォーマンスインサイト画面について解説されています。

パフォーマンスインサイトを使用する場合は、一通り見ておくと良さそうです。

他のRDSモニタリング機能との比較

RDSには、パフォーマンスインサイト以外にもモニタリング機能がいくつか存在します。  

パフォーマンスインサイトとの違いについて、以下にまとめてみます。  

機能 出力先 出力内容例
CloudWatchによるモニタリング CloudWatch Logs CPU使用率
DB接続数
メモリ領域
ストレージ領域
IOPS
拡張モニタリング CloudWatch Logs CPU使用状況
メモリ使用状況
ディスクI/O状況
OSプロセス
パフォーマンスインサイト RDS
(Performance Insights)
待機/SQL/ホスト/ユーザー別のAAS

CloudWatchによるモニタリングや拡張モニタリングは、主にDBに障害が起きた際のトラブルシューティングで役立つ機会が多そうですね。

逆にパフォーマンスインサイトは、主にDBに高負荷がかかっている際のパフォーマンスチューニングや、DBに対する負荷を計測する際の性能テストで役立つ機会が多そうです。

最後に

パフォーマンスインサイトは、今後RDSに負荷がかかった際の性能改善に役立つので、特別な事情がなければ有効化しておいた方がよさそうですね。

パフォーマンスインサイトを有効化するのであれば、どのような場面でパフォーマンスインサイトが役立つか、事前にきちんと把握しておきましょう。

以上、つくぼしでした!