ヒートマップ パターン

このページでは、Key Visualizer スキャンのヒートマップでみられるパターンとその意味について説明します。この情報は、Bigtable のパフォーマンスの問題を診断する際に役立ちます。

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

共通パターンの概要

このページでは、次の Key Visualizer のパターンの意味について説明します。

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

読み取りと書き込みが均等に分布しているヒートマップ

ヒートマップで明るい色と暗い色がきめ細かく混在している場合、読み取りと書き込みがテーブル全体で均等に行われています。このヒートマップは Bigtable が効率的に使用されていることを表しています。何も行う必要はありません。

定期的な使用

定期的な使用パターンを表すヒートマップ

ヒートマップで暗い帯と明るい帯が交互に表示されている場合、このキー範囲にアクセスしている時間帯とアクセスしていない時間帯が存在しています。たとえば、1 日の特定の時間にキー範囲にアクセスするバッチジョブなどが考えられます。

この使用パターンは、CPU 使用率やレイテンシが過剰でない限り問題ではありません。また、意図的にこのような方法でデータにアクセスしている場合も問題ではありません。このパターンで CPU 使用率が過剰になっている場合、使用ピーク時にクラスタへのノードの追加が必要になる可能性があります。特定の期間にデータへのアクセスが意図したものよりも過剰になっている場合は、アプリケーションを調査し、動作に問題のあるアプリケーションを特定します。

ホットなキー範囲

ホットなキー範囲を表すヒートマップ

ヒートマップに明るい色の帯が水平に表示され、暗い色の帯で区切られている場合、明るい色のキー範囲に次のいずれかの問題があります。

  • Read pressure index 指標または Write pressure index 指標を表示している場合、ホットなキー範囲で CPU 使用率が高くなっているか、レイテンシが長くなっている可能性があります。大量の読み取りまたは書き込みが実行されたか、1 行に 256 MB を超えるデータが格納されると、この問題が発生する可能性があります。この警告が複数の行ではなく 1 行でトリガーされている場合は、特に注意が必要です。
  • Large rows 指標を表示している場合、キー範囲には 256 MB を超えるデータを格納する行、または 1 行あたりの平均が 200 MB を超える行が含まれます。
  • これ以外の指標を表示している場合は、このキー範囲の行へのアクセス量が他の行よりも過剰になっている可能性があります。

問題を解決するには、次のいずれかの操作を行います。

  • フィルタを使用して、読み取りデータの量を減らす。
  • 頻繁に使用される行のデータや非常に大きな行のデータが複数の行に分割されるように、スキーマ設計またはアプリケーションを変更する。
  • Bigtable からの読み取り結果をキャッシュに保存するように、アプリケーションを更新する。
  • Bigtable に対する書き込みをバッチで処理して重複を排除するように、アプリケーションを更新する。

急激な増加

急激な増加を表すヒートマップ

ヒートマップに、暗い色から明るい色に急に変化しているキー範囲が表示された場合、次のいずれかのことが発生しています。

  • Large rows 指標を表示している場合は、このキー範囲の行に短期間で大量のデータが追加されています。

    大量のデータが格納された行からデータを削除するか、これらの行に格納されるデータ量が少なくなるようにスキーマ設計を変更します。

  • これ以外の指標を表示している場合は、特定の期間に、これらの行に対するアクセスが通常よりもかなり多くなっている可能性があります。

    この使用パターンは、CPU 使用率やレイテンシが過剰でない限り問題ではありません。また、意図的にこのような方法でデータにアクセスしている場合も問題ではありません。このパターンで CPU 使用率が過剰になっている場合、使用ピーク時にクラスタへのノードの追加が必要になる可能性があります。特定の期間に、データへのアクセスが意図したものよりも過剰になっている場合は、アプリケーションを調査し、動作に問題のあるアプリケーションを特定します。

順次読み取り / 書き込み

キー範囲内の順次読み取り / 書き込みを表すヒートマップ

ヒートマップに明るい色の斜線が表示されている場合は、テーブル内の連続したキー範囲が順番にアクセスされています。たとえば、テーブルの行キーに繰り返しバッチジョブが実行されている可能性があります。

この使用パターンは、CPU 使用率やレイテンシが過剰でない限り問題ではありません。また、意図的にこのような方法でデータにアクセスしている場合も問題ではありません。このパターンで CPU 使用率が過剰になっている場合、使用ピーク時にクラスタへのノードの追加が必要になる可能性があります。テーブル内の行に対する順次アクセスが意図したものでない場合は、アプリケーションを調査し、動作に問題のあるアプリケーションを特定します。

次のステップ