ヒートマップ パターン

このページでは、Key Visualizer ヒートマップでみられるパターンの例を示します。これらのパターンは、特定のパフォーマンス問題のトラブルシューティングに役立ちます。

Key Visualizer で明らかになる問題の中には、主キーの定義に関連する問題があります。主キーは不変であるため、この問題は設計または概念実証の段階で最もよく検出されます。

他にも、インスタンスのノードの割り当てに関連する問題もあります。容量全体または場合によっては、1 日の特定の時点で追加の容量のプロビジョニングが必要になることがあります。インスタンスに関連付けられたノードの数を変更するには、ノードの数の変更をご覧ください。

このページを読む前に、Key Visualizer の概要を理解しておく必要があります。

読み取り / 書き込みの均等分布

ホットとコールドの均等に分布した領域を示すヒートマップの例

ヒートマップで明るい色と暗い色がきめ細かく混在している場合、読み取りと書き込みがデータベース全体で均等に行われています。このヒートマップは Spanner の効果的な使用パターンを表しているため、何もする必要はありません。

独自のヒートマップは、これほど均等に分散されていなくても、正常なスキーマとワークロードを示しています。適切なリソース構成では、いくつかのホットスポットが想定されます。

単調に増加するキー

斜めの(左から右に落ちる)ホットバンドを示すヒートマップの例

単一の明るい斜線が書かれたヒートマップ、または上部が平らな三角形は、シーケンシャルキーを使用するデータベースを示すことができます。順次鍵は Spanner のアンチパターンです。順次鍵でホットスポットが発生する理由については、スキーマ設計のベスト プラクティス ページをご覧ください。

一定のホットキー範囲

複数のホット水平帯域を示すヒートマップの例

ヒートマップでは、明るい色の水平の帯が濃い色で表示され、暗い色で区切られている場合、特定の行範囲が時系列で一貫してアクセスする量が多いことを示します。

この問題に対処するには、使用頻度の高い行のデータや非常に大きな行のデータが複数の行に分散されるように、スキーマ設計またはアプリケーションを変更することを検討してください。

1 つのホットテーブル

単一のホット水平帯域を示すヒートマップの例

ヒートマップに明るい色の帯が 1 つのテーブルで表示されている場合は、そのテーブルに時間とともに大きなアクセスが発生していることを示します。

このパターンだけでは、必ずしも問題になるわけではありません。パフォーマンスの問題との組み合わせでこのパターンが見られる場合は、コンピューティング容量が尽きようとしている可能性があります。注意事項:

  • アプリケーションがテーブル全体のスキャンをリクエストしている可能性があります。その場合は、テーブル全体が明るい帯として Key Visualizer に表示されます。代わりに、より制限されたクエリを使用するか、インデックスに対するクエリを実行して、スキャンされる行数を減らしてください。

  • このインスタンスのノード数を増やします

一定の頻度での読み取りと書き込み

ホットバンドの斜線(左から右に増加)を示すヒートマップの例

複数の斜線が明るい線(上昇または下降)を示しているヒートマップは、通常、短時間での行でのシーケンシャルな読み取りまたは書き込みを表しています。

線がテーブルのエクスポートなどの読み取りアクティビティに該当する場合、何もする必要はありません。このような読み取り中にパフォーマンスの問題が発生した場合は、これらの期間中にインスタンスのノード数を増やすことを検討してください。ノード数はそれらの期間外では減らすことができます。

行が書き込みアクティビティに該当していて、パフォーマンスの問題が発生している場合は、順次書き込みではなくランダム書き込みにワークロードを変更することを検討してください。

トラフィックの急激な増加

ヒートマップの途中から始まる 2 つのホット水平帯を示すヒートマップの例

ヒートマップの途中に表示される明るい水平帯を示すヒートマップは、データベースの使用パターンが急激に変化したことを示しています。これは、不正なクエリや、特定の行のアクティビティが予期せず急増した可能性があります。

注意点

Key Visualizer がパフォーマンスとリソース使用量の全体像を表示できない場合もあります。

事例 ヒートマップに表示される内容
大規模なデータテーブルと小さなテーブル Key Visualizer は、小さなテーブルよりも大きなテーブルの行範囲を多く選択します。その結果、小さなテーブルはヒートマップに 1 つの行範囲としてしか表示されないことがあります。テーブル数が 1,000 未満である限り、すべてのテーブルを表す行範囲があります。小さなテーブルで 1 つのキーまたは狭いキー範囲がホットな場合、ユーザーはそのテーブルがホットであることは認識できますが、それ以上は知ることができません。
多数のテーブル / インデックス
たとえば、データベースには、サイズに関係なく、数百個または千個以上のテーブルがあります。
Key Visualizer で選択される行範囲は、1,000 までです。テーブルとインデックスが多数ある場合、その一部はヒートマップにデータポイントを持たない、または 1 つ持つのどちらかしかありません。そのため、ホットスポットは、そのテーブルがスキップされる、または間引かれるため、欠落している可能性があります。
鍵を迅速に変更する キースペースの急速な変化によって、行範囲が頻繁に変更されます。キーが新しく挿入されたために前の行範囲を分割する必要がある場合、またはキーが削除されたために複数の行範囲がマージされる場合、指標は近似値が求められます(分割 / 結合など)。指標値の複合近似により、精度が低下する可能性があります。さらに、キースペースが変化すると行範囲の更新に遅延が生じるため、行範囲が更新されるまで精度が悪くなる可能性があります。

次のステップ