データベース内のホットスポットを見つける

このページでは、ホットスポットの分析情報ダッシュボードを使用して Spanner データベースのホットスポットを検出する方法について説明します。

ホットスポットの分析情報の概要

ホットスポットにより、Spanner データベースでレイテンシが発生します。ホットスポットの分析情報ダッシュボードは、ホットスポットの影響を受けている分割を検出するのに役立ちます。次の手順に沿って、ホットスポットがレイテンシの原因かどうかを判断し、原因である場合は問題を解決します。

  1. ダッシュボードを開く。
  2. ホットスポットに介入する必要があるかどうかを判断する。
  3. 問題のあるホットスプリットを特定する。

ホットスポットの分析情報は、シングルリージョン、マルチリージョン、デュアルリージョンの構成で使用できます。

料金

Hotspot Insights ホットスポットの分析情報の使用に追加料金はかかりません。

データの保持

ホットスポットの分析情報のグラフとテーブルの最大データ保持期間は 6 時間です。

最もホットなスプリット テーブルの場合、データは SPANNER_SYS.SPLIT_STATS_TOP_MINUTE テーブルから取得されます。このテーブルの最大保持期間は 6 時間です。詳細については、データの保持をご覧ください。

必要なロール

IAM ユーザーであるか、きめ細かいアクセス制御ユーザーであるかによって、異なる IAM のロールと権限が必要になる場合があります。

Identity and Access Management(IAM)ユーザー

[ホットスポットの分析情報] ページを表示するために必要な権限を取得するには、インスタンスに対する次の IAM ロールを付与するよう管理者に依頼してください。

[ホットスポットの分析情報] ページを表示するには、Cloud Spanner データベース読み取りroles/spanner.databaseReader)ロールの次の権限が必要です。

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

きめ細かいアクセス制御ユーザー

きめ細かいアクセス制御ユーザーは、次のことを確認してください。

  • Cloud Spanner 閲覧者roles/spanner.viewer)が付与されている。
  • きめ細かいアクセス制御の権限があり、spanner_sys_reader システムロールまたはそのメンバーのロールのいずれかが付与されている。
  • データベースの [概要] ページで、現在のシステムロールとして spanner_sys_reader またはメンバーロールを選択する。

詳細については、きめ細かいアクセス制御の概要きめ細かいアクセス制御システムロールをご覧ください。

ホットスポットの分析情報ダッシュボードを開く

[ホットスポットの分析情報] ダッシュボードには、ピーク スプリットの CPU 使用率の割合が表示されます。この指標は、スプリット内の行にアクセスするときに使用される CPU 量を反映した、0 ~ 100 の抽象的な割合です。

データベースの [ホットスポットの分析情報] ダッシュボードを表示するには、次の操作を行います。

  1. Google Cloud コンソールで、[Spanner] ページを開きます。

    Spanner に移動

  2. リストからインスタンスを選択します。

  3. ナビゲーション メニューで [ホットスポットの分析情報] タブをクリックします。

  4. [データベース] フィールドで、リストからデータベースを選択します。ダッシュボードには、データベースのピーク スプリットの CPU 使用率スコアが表示されます。

ダッシュボードには、次の領域があります。

  • ピーク スプリットの CPU 使用率スコアのグラフ: CPU 使用率スコアが高い(100 に近い)ほどスプリットが頻繁に発生し、スコアが低い場合と比べると、サーバー上でホットスポットが発生する可能性が高くなります。
  • データベース フィールド: 特定のデータベースまたはすべてのデータベースのホット スプリット情報をフィルタします。
  • 時間範囲フィルタ: ピーク スプリットの CPU 使用率を 1 分単位でフィルタし、最大 6 時間にします。
  • TopN スプリット テーブル: スプリットの CPU 使用率スコアで並べ替えられた上位のスプリットのリストが表示されます。

ホットスポットの分析情報ダッシュボード

ホットスポットに介入する必要があるかどうかを判断する

全体的なレイテンシと継続的に高いピーク スプリットの CPU 使用率スコアに対応するグラフで急上昇や上昇が見られる場合は、さらに調査が必要になる可能性があります。

グラフを確認して次の問いを検討します。

  • レイテンシの低下が発生しているデータベースはどれですか?[データベース] リストから別のデータベースを選択し、レイテンシが最も高いデータベースを見つけます。負荷が最も高いデータベースを確認するには、Google Cloud コンソールでデータベースのレイテンシグラフを確認します。

    レイテンシ

  • レイテンシは高いですか?ワークロードの予想されるレイテンシと比較してレイテンシが高いですか?グラフは時間の経過にともなって急上昇または上昇していますか?レイテンシが高くない場合は、ホットスポットに問題はありません。

  • ピーク スプリットの CPU 使用率スコアが 100% になっていますか?グラフは時間の経過にともなって急上昇または上昇していますか?10 分以上継続してピーク スプリットの CPU 使用率が 100% にならない場合は、ホットスポットが問題ではない可能性があります。ピーク スプリットの CPU 使用率の割合が 10 分を超えて高い場合は、データベースのレイテンシ レベルが予想よりも高いかどうかを詳しく調査することをおすすめします。

ピーク スプリットの CPU 使用率が 100% で 10 分以上続く場合は、ホットスポットの介入が必要になる可能性があります。次に、データベース内のホット スプリットを特定して、デバッグ作業を進めます。

問題のあるホット スプリットを特定する

ホットスポットがある潜在的に問題のあるスプリットを特定するには、次に示すように、Google Cloud コンソールの [TopN スプリット] セクションを参照してください。

上位 N 個のスプリット

[TopN スプリット] のテーブルには、選択した期間中にホットになる可能性があるスプリットの概要が、最新から古い順に表示されます。TopN スプリットの数は 100 に制限されています。

グラフの場合、Spanner は TopN スプリット統計情報テーブルから 1 分単位でデータを取得します。グラフの各データポイントの値は、1 分間隔の平均値を表します。

テーブルには以下のプロパティが表示されます。

  • 期間の終了: CPU 使用率がピークに達した期間の終了日時。
  • スプリットの開始: スプリット内の行範囲の開始キー。スプリットの開始が <begin> の場合、これはデータベースのキー範囲の開始を示します。
  • スプリットの制限: スプリットの行範囲の制限キー。制限キーが <end> の場合、データベースのキー範囲の終了を示します。
  • スプリットの CPU 使用率スコア: 1 台のサーバーでスプリット内の行へのアクセスで使用される CPU 量を反映した 0 ~ 100 の抽象的なスコア。CPU 使用率スコアを使用すると、ホットスポットがあるかどうか評価できます。
  • 影響を受けるテーブル: スプリットに行が格納される可能性のあるテーブル。

次のステップ