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

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

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

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

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

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

料金

ホットスポットの分析情報の使用に追加料金は発生しません。

データの保持

ホットスポット分析情報のグラフと表の最大データ保持期間は 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 個のスプリット

[上位 N 分割] の表には、選択した期間中にホットになる可能性がある分割の概要が、最新から古い順に表示されます。上位 N の分割数は 100 に制限されています。

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

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

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

次のステップ