利用できるようになりましたというブログポストがありました。[1]2018/6/21 から、Amazon Aurora PostgreSQL版で有効になっていた [2] のですが、
Amazon Aurora MySQL 版でも利用できるようになりました。
Performance Insight とは¶
「 Amazon リレーショナルデータベースサービス(RDS) の 性能問題の原因を突き止め、
解決することを容易にするより進んだデータベースモニタリング機能を提供します。」
(ブログ [1] より、勝手に意訳)
これまでの cloudwatch メトリックでもかなりたくさんの情報が得られていたのですが、
具体的に何ができるようになったのでしょうか。
実際に確認してみたいと思います。
Performance Insight の有効化¶
有効化自体は非常に簡単です。
Amazon Aurora の作成ウィザードの途中で以下の項目が追加されています。
また作成後、マネジメントコンソールにも以下の項目が追加されていて、簡単に
有効化できるようになっています。
Performance Insight のマニュアル [5] を参照すると、
有効化すると以下のパフォーマンススキーマが Aurora 上の MySQL で有効になります。
-
- performance_schema=1
- パフォーマンススキーマを有効にする。
-
- performance-schema-consumer-events-waits-current=ON
- 現在の待ちイベントの収集(consumer)を有効にする。
-
- performance-schema-instrument='wait/%=ON'
- 待ち関連のイベント発生を有効にする。
-
- performance-schema-consumer-global-instrumentation=ON
- 全体的なイベント発生の収集(consumer)を有効にする。
-
- performance-schema-consumer-thread-instrumentation=ON
- スレッド単位のイベント発生の収集(consumer)を有効にする。
各項目の詳細については MySQL [3] のマニュアルを参照してください。
Performance Insight を見てみる¶
次に画面を見てみます。作ったばかりなので、何も表示されません。なんだかわかりません。
仕方がないので、mysqlslap [4] で適当に負荷を発生させてみることにします。
mysqlslap の詳細については、本稿の範囲を超えるので省略します。
しばらく負荷をかけているとそれらしきグラフが表示されました。
グラフの右側にある slice を変更すると wait,sql,host,user 毎のグラフが
出力されるようになります。
何で待ちが発生しているかが積み上げグラフで表示されます。
どうも io/aurora_redo_log_flush の成分が多いようです。
Insert が多いからでしょう。
ここで下のパネルから SQL タブを選択してみます。想定通り、INSERT 成分が多いことが
確認できます。
ある程度クエリも集約してくれているようです。クエリをクリックすると、
さらに個別のクエリが表示されます。
ホスト別でも負荷状況が確認できます。
ホストの横のチェックボックスをクリックすると、ホスト毎のグラフが表示されます。
問題のあるホストを特定するのに役立ちそうです。
DBのユーザ単位でも同じことができます。下のパネルのユーザタブをクリックします。
master ユーザで絞り込みました。
グラフの右隣りにある項目を選択することで、特定の項目だけグラフ表示できます。
以下の例では、選択した INSERT 分では io/aurora_redo_log_flush が多いことが
わかります。
さらに画面右の項目と、下パネルの項目を組み合わせて表示を絞り込むこともできます。
以下の例では INSERT 文と、io/table/sql/handler を組み合わせています。
以前は同等のことを実施しようとすると、パフォーマンススキーマのデータとクエリログ
を突き合わせてうーん何だろうとやるか、本番よりも強力なDBサーバを用意して解析する
という本末転倒な作業が必要でしたが、Performance Insights があれば性能問題に
大して迅速かつ適切な対処が可能になるでしょう。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?