今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、Performance InsightsでAurora for MySQLを調査するための記録の日。

目次

とある日

Performance InsightsでAurora for MySQLを調査するのにあったって、調べた内容を記録したものです。

Performance Insightsとは

データベース内のパフォーマンスデータを蓄積してボトルネックを特定

Performance Insights(RDSのパフォーマンスを分析、チューニング)| AWS

基本情報

Amazon RDS での Performance Insights を使用したDB 負荷のモニタリング - Amazon Relational Database Service

分析の見方

Performance Insights ダッシュボードを使用してメトリクスを分析する - Amazon Relational Database Service

Performance Insights のAWS資料

各分析内容

  • カウンターメトリクス
    • OSのリソース情報(CPU、Memoryなど)
    • DBの統計情報(セッション数など)
  • データベース負荷
    • 平均アクティブセッション数(AAS)
    • CPU時間と待機イベント内訳
    • RDS/Aurora全てのエンジンをサポート
  • ボトルネックの分析軸

分析流れ

  1. カウンターメトリクスでデータベースリソースが多く使われている時間帯を探す
  2. データベース負荷で負荷が多いSQLや待機イベントを確認する
  3. ボトルネックの分析軸でそれぞれについてドリルダウンして情報を見る

データベース負荷で「インスタンスの最大vCPUを超えている」のものがあるかを探す。

スレッドの状態

スレッド状態を使用した Aurora MySQL のチューニング - Amazon Aurora

MySQL :: MySQL 8.0 リファレンスマニュアル :: 8.14.3 一般的なスレッドの状態

Aurora MySQL thread states

creating sort index

creating sort index スレッド状態は、データをソートするために内部テンポラリテーブルを使用する必要がある SELECT ステートメントを、スレッドが処理中であることを示します。

ソートインデックスの作成 - Amazon Aurora

  • 原因
    • 最も可能性の高い原因は ORDER BY または GROUP BY 演算子を使った遅いクエリ
  • 対策
    • ソートバッファサイズを増やす

MySQLのWHERE狙いのキー(インデックス)と、ORDER BY狙いのキーによるSQLの高速化 - このすみノート

第111回 MySQLのソート処理について | gihyo.jp

sending data

sending data スレッド状態は、スレッドがクエリの行を読み取り、フィルタリングして、正しい結果セットを決定していることを示します。名前が誤解を招くのは、状態がデータを転送しており、後で送信するデータを収集して準備していないことを意味するためです。

データの送信 - Amazon Aurora

MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.3.1 MySQL のインデックスの使用の仕組み

MySQLのIndexをはるコツ - Qiita

Performance Insightsの情報一生見てられるなと思いました。

参考情報

Amazon RDS での Performance Insights を使用したDB 負荷のモニタリング - Amazon Relational Database Service

Data Modernization Day in Japan #3 「2.5時間で学ぶ! Amazon Aurora のいま」資料・動画及び QA 公開 | Amazon Web Services ブログ

Performance Insights で Amazon RDS for MySQL をチューニングする | Amazon Web Services ブログ

Amazon Aurora MySQL のリファレンス - Amazon Aurora

初めてのPerformance Insights入門 – その3 | Amazon Web Services ブログ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

待機イベントとスレッド状態を使用した Aurora MySQL のチューニング - Amazon Aurora

MySQLの負荷が高くて困ったときにやること - Qiita