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

このページでは、ホットスポットの分析情報ダッシュボードを使用して 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 時間まで増やすことができます。
  • [上位 N 個のスプリット] テーブル: スプリットの CPU 使用率スコアで並べ替えた上位のスプリットのリストが表示されます。

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

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

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

グラフを確認して次のことを検討します。

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

    レイテンシ

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

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

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

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

問題となるホットスポットが存在する可能性のあるスプリットを特定するには、次に示すように、 Google Cloud コンソールの [上位 N 個のスプリット] セクションを確認します。

上位 N 個のスプリット

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

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

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

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

次のステップ