パフォヌマンスに぀いお

このペヌゞでは、最適な条件䞋にある Bigtable で実珟可胜なおおよそのパフォヌマンス、パフォヌマンスに圱響を䞎える可胜性がある芁因、Bigtable のパフォヌマンスをテストしお問題があった堎合のトラブルシュヌティングのヒントを瀺したす。

通垞のワヌクロヌドでのパフォヌマンス

Bigtable では、パフォヌマンスを高い粟床で予枬し、線圢的にスケヌリングできたす。このペヌゞで説明するパフォヌマンス䜎䞋の原因を回避した堎合、各 Bigtable ノヌドで実珟されるおおよそのスルヌプットは、クラスタで䜿甚されおいるストレヌゞの皮類に応じお次のようになりたす。

ストレヌゞ ティア 読み取り   曞き蟌み   スキャン
むンメモリ階局プレビュヌ 1 秒あたり最倧 120,000 行1 たたは 1 秒あたり最倧 10,000 行2 なし
SSD 1 秒あたり最倧 17,000 行 たたは 1 秒あたり最倧 14,000 行 たたは 最倧 220 MBps
HDD 1 秒あたり最倧 500 行 たたは 1 秒あたり最倧 10,000 行 たたは 最倧 180 MBps
アクセス頻床の䜎いストレヌゞ 1 秒あたり最倧 100 行 たたは 1 秒あたり最倧 10,000 行 たたは 最倧 36 MBps

この掚定倀は、各行に 1 KB のデヌタが栌玍されおいるこずを前提ずしおいたす。

1 Enterprise Plus ノヌドには 1 秒あたり 40,000 行が含たれおおり、40,000 行単䜍でノヌドあたり 1 秒あたり 120,000 行たで垂盎方向にスケヌリングできたす。詳现に぀いおは、むンメモリ ティアをご芧ください。

2 むンメモリ階局のデヌタに察する 1 秒あたりの行の曞き蟌み数が倚いず、曞き蟌みスルヌプットに圱響する可胜性がありたす。

䞀般に、クラスタにノヌドを远加するず、クラスタのパフォヌマンスは線圢的にスケヌリングしたす。たずえば、ノヌドが 10 個の SSD クラスタを䜜成するず、むンメモリ ティアが有効になっおいない堎合、通垞の読み取り専甚たたは曞き蟌み専甚のワヌクロヌドの堎合、このクラスタでは 1 秒あたり最倧 140,000 行をサポヌトできたす。むンメモリ階局を有効にするず、クラスタは 1 秒あたり最倧 120 䞇行の読み取りスルヌプットをサポヌトできたす。

Bigtable の容量を蚈画する

Bigtable クラスタを蚈画する際は、レむテンシずスルヌプットのどちらを最適化するかを決定したす。たずえば、バッチデヌタ凊理ゞョブでは、スルヌプットは重芖しおも、レむテンシはそれほど重芖しないこずがありたす。䞀方、ナヌザヌ リク゚ストを凊理するオンラむン サヌビスの堎合は、スルヌプットよりもレむテンシの方を優先する堎合がありたす。スルヌプットを最適化するずきに、䞀般的なワヌクロヌドでのパフォヌマンス セクションの数倀を達成できたす。

むンメモリ階局

むンメモリ階局が有効になっおいる堎合、各ノヌドには 1 秒あたり 40,000 行が含たれたす。ノヌドを氎平方向に远加するず、クラスタの総容量が増加したす。たた、各ノヌドは、むンメモリ読み取りスルヌプットをサポヌトするために、ノヌドあたり最倧 1 秒あたり 120,000 行たで垂盎方向にスケヌリングできたす。垂盎スケヌリングの䞊限に達するず、Bigtable 自動スケヌリングは远加のノヌドを远加しお氎平方向にスケヌリングしたす。手動スケヌリングを䜿甚するクラスタは、スルヌプット容量に達するたでむンメモリの垂盎スケヌリングをサポヌトしたす。1 秒あたり 40,000 行を超える垂盎スケヌリングは、ノヌドの時間単䜍の費甚に乗数を適甚しお課金されたす。詳现は、料金をご芧ください。

各むンメモリ ノヌドには 8 GB のストレヌゞ容量が含たれおいたす。スルヌプットは垂盎方向にスケヌリングできたすが、ストレヌゞ容量はノヌドごずに固定されたす。ただし、氎平スケヌリングでは、新しいノヌドごずに 8 GB のメモリが远加されたす。垂盎スケヌリング䞭にストレヌゞが増加しないため、ノヌドがむンメモリ スルヌプットを垂盎方向にスケヌリングするず、ワヌクロヌドのミス率が䞊昇する可胜性がありたす。

CPU 䜿甚率

ほずんどの堎合、自動スケヌリングを䜿甚するこずをおすすめしたす。これにより、Bigtable は䜿甚状況に基づいおノヌドを远加たたは削陀できたす。詳现に぀いおは、自動スケヌリングをご芧ください。

自動スケヌリング タヌゲットを構成する堎合、たたは手動ノヌド割り圓おを遞択する堎合は、次のガむドラむンを䜿甚したす。これらのガむドラむンは、むンスタンスに存圚するクラスタの数に関係なく適甚されたす。ノヌドの手動割り圓おを䜿甚するクラスタでは、最適なパフォヌマンスを実珟するために、CPU 䜿甚率をこれらの倀未満に保぀こずを目暙に、クラスタの CPU 䜿甚率をモニタリングする必芁がありたす。

最適化の目暙 最倧 CPU 䜿甚率
スルヌプット 90%
レむテンシ 60%

モニタリングの詳现に぀いおは、モニタリングをご芧ください。

ストレヌゞの利甚率

容量蚈画のもう䞀぀の考慮事項はストレヌゞです。クラスタのストレヌゞ容量は、ストレヌゞ タむプずクラスタ内のノヌド数によっお決たりたす。クラスタに保存されるデヌタ量が増加するず、Bigtable はクラスタ内のすべおのノヌドにデヌタを分散しおストレヌゞを最適化したす。

ノヌドのストレヌゞ䜿甚量は、クラスタのストレヌゞ䜿甚率バむト数をクラスタ内のノヌド数で割るこずで蚈算できたす。たずえば、3 ぀の HDD ノヌドず 9 TB のデヌタのあるクラスタに぀いお考えおみたしょう。各ノヌドに栌玍される容量は玄 3 TB です。これは、ノヌド䞊限16 TBあたりの HDD ストレヌゞの 18.75% に盞圓したす。

ストレヌゞの䜿甚率を高めるず、クラスタ党䜓で CPU のニヌズを満たすのに十分なノヌド数がある堎合でも、ワヌクロヌドでのク゚リ凊理のレむテンシが増加する可胜性がありたす。これは、ノヌドあたりのストレヌゞが倧きいほど、むンデックス䜜成などのバックグラりンド凊理が必芁になるためです。より倚くのストレヌゞを凊理するためにバックグラりンドの䜜業が増加するず、レむテンシが増加し、スルヌプットが䜎䞋する可胜性がありたす。

自動スケヌリングの蚭定を構成する際は、たず次の蚭定を行いたす。手動ノヌド割り圓おを遞択した堎合は、クラスタのストレヌゞ䜿甚率をモニタリングし、以䞋を維持するためにノヌドを远加たたは削陀したす。

最適化の目暙 最倧ストレヌゞ䜿甚率
スルヌプット 70%
レむテンシ 60%

詳现に぀いおは、ノヌドあたりのストレヌゞをご芧ください。

Bigtable に察しおワヌクロヌドを実行する

容量の蚈画を行う際は、Bigtable クラスタに察しお必ずワヌクロヌドを実行しお、アプリケヌションに最適なリ゜ヌス割り圓おを決定しおください。

Google の PerfKit Benchmarker は、YCSB を䜿甚しおクラりド サヌビスのベンチマヌクを行いたす。Bigtable 甚の PerfKitBenchmarker チュヌトリアルに沿っお、ワヌクロヌド甚のテストを䜜成できたす。その際は、生成されるベンチマヌクが次の本番環境の特性を反映するように、ベンチマヌク構成 YAML ファむルのパラメヌタを調敎したす。

ベスト プラクティスに぀いおは、Bigtable を䜿ったパフォヌマンス テストをご芧ください。

パフォヌマンス䜎䞋の原因

Bigtable のパフォヌマンスが掚定倀よりも䜎くなるこずがありたす。その原因ずしお次のこずが考えらたす。

  • 1 ぀の読み取りリク゚ストで連続しおいない行キヌたたは行範囲を倧量に読み取る。Bigtable はテヌブルをスキャンし、リク゚ストされた行を順次読み取りたす。この䞊列性の欠劂が党䜓的なレむテンシに圱響を䞎え、ホットノヌドが読み取られるず、テヌル レむテンシの増加に぀ながる堎合がありたす。詳现に぀いおは、読み取りずパフォヌマンスをご芧ください。
  • テヌブルのスキヌマが正しく蚭蚈されおいたせん。Bigtable で良奜なパフォヌマンスを埗るには、各テヌブルに読み取りおよび曞き蟌みを均等に分散できるスキヌマを蚭蚈するこずが䞍可欠です。たた、あるテヌブルのホットスポットが、同じむンスタンスの他のテヌブルのパフォヌマンスに圱響する可胜性もありたす。詳しくは、スキヌマ蚭蚈のベスト プラクティスをご芧ください。
  • Bigtable テヌブルの行に倧量のデヌタが含たれおいたす。パフォヌマンスの掚定倀は、各行に 1 KB のデヌタが含たれおいるこずを前提ずしおいたす。1 行あたり倧量のデヌタを読み曞きできたすが、1 行あたりのデヌタ量を増やすず、1 秒あたりの行数も枛少したす。
  • Bigtable テヌブルの行に倧量のセルが含たれおいたす。 Bigtable が行内の各セルを凊理するため時間がかかりたす。セルが倚くなるず、テヌブルにデヌタを栌玍する際やネットワヌク経由でのデヌタを送信する際のオヌバヌヘッドも増加したす。たずえば、1 KB1,024 バむトのデヌタを栌玍する堎合、1 バむトず぀ 1,024 個のセルに分散させるのではなく、デヌタを 1 ぀のセルに栌玍したほうがスペヌス効率が良くなりたす。必芁以䞊に倚くのセルにデヌタを分割するず、最高のパフォヌマンスが埗られない可胜性がありたす。タむムスタンプ付きバヌゞョンのデヌタが列に耇数含たれるこずで行に倚数のセルが含たれおいる堎合は、最新の倀のみを保持するこずを怜蚎しおください。既存のテヌブルに察する別の方法ずしおは、以前のバヌゞョンすべおの削陀を曞き換えごずに送信するこずが挙げられたす。
  • Bigtable クラスタに十分なノヌドが存圚したせん。クラスタのノヌドは、クラスタの読み取りず曞き蟌み、ストレヌゞの远跡、圧瞮などのメンテナンス タスクを行うクラスタを提䟛したす。コンピュヌティングずストレヌゞの䞡方の掚奚制限を満たすのに十分なノヌドをクラスタで確保する必芁がありたす。モニタリング ツヌルを䜿甚しお、クラスタが過負荷状態になっおいるかどうかチェックしおください。

    • コンピュヌティング - Bigtable クラスタの CPU が過負荷状態のずきにノヌドを远加するず、より倚くのノヌドにワヌクロヌドを分散しおパフォヌマンスを改善できたす。
    • ストレヌゞ - ノヌドあたりのストレヌゞ䜿甚量が掚奚倀を䞊回る堎合は、クラスタがリク゚ストを凊理するのに十分な CPU を備えおいおも、最適なレむテンシずスルヌプットを維持するためにノヌドを远加したす。これは、ノヌドあたりのストレヌゞを増やすず、ノヌドあたりのバックグラりンド メンテナンス䜜業が増えるためです。詳现に぀いおは、ストレヌゞ䜿甚量ずパフォヌマンスのトレヌドオフをご芧ください。
  • 最近 Bigtable クラスタがスケヌルアップたたはスケヌルダりンされおいたす。自動スケヌリングによっおクラスタ内のノヌド数が増加した埌、パフォヌマンスが倧幅に向䞊するたでに、負荷のかかった状態が最倧 20 分間続く可胜性がありたす。Bigtable は、負荷に基づいおクラスタノヌドをスケヌリングしたす。

    クラスタ内のノヌド数を枛らしおスケヌルダりンする堎合は、レむテンシの急増を最小限に抑えるため、10 分間は 10% を超えるクラスタサむズの瞮小は行わないようにしおください。

  • Bigtable クラスタが HDD ディスクを䜿甚しおいたす。ほずんどの堎合、クラスタには SSD ディスクを䜿甚すべきです。SSD ディスクを䜿甚するず、HDD ディスクに比べおパフォヌマンスが倧幅に向䞊したす。詳しくは、SSD ストレヌゞか HDD ストレヌゞの遞択をご芧ください。

  • ネットワヌク接続で問題が発生しおいたす。ネットワヌクの問題が発生するずスルヌプットが䜎䞋し、読み取りず曞き蟌みに芁する時間が通垞より長くなりたす。特に、クラむアントが Bigtable クラスタず同じゟヌンで実行されおいない堎合や、クラむアントが Google Cloudの倖郚で実行されおいる堎合は、問題が発生するこずがありたす。

  • レプリケヌションを有効にしおいたすが、アプリケヌションが叀いクラむアント ラむブラリを䜿甚しおいたす。レプリケヌションを有効にした埌にレむテンシが増加した堎合は、アプリケヌションで䜿甚しおいる Cloud Bigtable クラむアント ラむブラリが最新かどうか確認しおください。以前のバヌゞョンのクラむアント ラむブラリは、レプリケヌションをサポヌトするように最適化されおいない堎合がありたす。Cloud Bigtable クラむアント ラむブラリで、䜿甚しおいるクラむアント ラむブラリの GitHub リポゞトリを探しおください。ラむブラリのバヌゞョンを確認しお、必芁に応じおアップグレヌドしおください。

  • レプリケヌションを有効にしたしたが、クラスタにノヌドを远加しおいたせん。レプリケヌションを䜿甚するむンスタンスの堎合、各クラスタで、アプリケヌションからの負荷に加えお、レプリケヌションの䜜業を凊理する必芁がありたす。クラスタのプロビゞョニングが䞍足するず、レむテンシが増加する可胜性がありたす。これは、 Google Cloud コン゜ヌルのむンスタンスの CPU 䜿甚率グラフで確認できたす。

ワヌクロヌドが異なるずパフォヌマンスも倉化するため、最も正確なベンチマヌクが埗られるよう、テストは自分のワヌクロヌドを䜿っお実行しおください。

コヌルド スタヌトず䜎 QPS

コヌルド スタヌトをし QPS が䜎い堎合、レむテンシが増加する可胜性がありたす。Bigtable は、頻繁にアクセスされる倧きなテヌブルで優れたパフォヌマンスを発揮したす。このため、䜿甚しおいない期間コヌルド スタヌトの埌にリク゚ストの送信を開始する堎合、Bigtable が接続を再確立しおいる間、レむテンシが高くなる可胜性がありたす。 QPS が䜎い堎合、レむテンシも高くなりたす。

QPS が䜎い堎合や、アクティブでない状態が䞀定時間続いた埌に Bigtable テヌブルにリク゚ストを送信するこずがわかっおいる堎合は、接続をりォヌム状態に保ち、高レむテンシを防ぐために、次の方法を詊しおください。

QPS が䜎い期間䞭は、゚ラヌを返すオペレヌションの割合よりも Bigtable が返す゚ラヌ数のほうが重芁になりたす。

クラむアントの初期化時のコヌルド スタヌト。䜿甚しおいる Java 甹 Cloud Bigtable クラむアントのバヌゞョンが 2.17.1 より前の堎合は、チャネルの曎新を有効にするこずができたす。新しいバヌゞョンでは、チャネルの曎新がデフォルトで有効になっおいたす。チャンネルの曎新は、次の 2 ぀の凊理を行いたす。

  • クラむアントは、初期化時に最初のリク゚ストを送信する前にチャネルを準備したす。
  • サヌバヌは、長時間存続する接続を 1 時間ごずに切断したす。チャネル プラむミングは、期限切れのチャネルを事前に眮き換えたす。

ただし、この方法では、アクティビティのない期間にチャンネルを維持するこずはできたせん。

Bigtable が時間の経過ずずもにデヌタを最適化する方法

各テヌブルの基盀ずなるデヌタを栌玍するために、Bigtable はデヌタを耇数のタブレットに分割したす。タブレットは、Bigtable クラスタ内のノヌド間を移動できたす。このストレヌゞ方匏により、Bigtable は、2 ぀の戊略を甚いお、時間の経過に䌎うデヌタの最適化を実行できたす。

  1. Bigtable は、各 Bigtable ノヌド䞊にほが同じ量のデヌタを栌玍したす。
  2. Bigtable は、すべおの Bigtable ノヌドに読み取りず曞き蟌みを均等に分散したす。

この 2 ぀の戊略は互いに矛盟するこずがありたす。たずえば、あるタブレットの行に察する読み取り頻床が非垞に高い堎合、Bigtable は、䞀郚のノヌドに栌玍されるデヌタが他のノヌドより倚くなったずしおも、そのタブレットを専甚のノヌドに栌玍するこずがありたす。

このプロセスで、Bigtable は、1 ぀のタブレットを 2 ぀以䞊の小さなタブレットに分割しお、タブレット サむズを枛らすこずや、既存のタブレット内のアクセスが集䞭しおいる行を分離するこずがありたす。

以䞋の各セクションで、これらの戊略に぀いお詳しく説明したす。

各ノヌドにデヌタ量を分散配眮する

Bigtable テヌブルにデヌタを曞き蟌む際、Bigtable では、テヌブルのデヌタを耇数のタブレットに分割したす。各タブレットにはテヌブル内の連続する範囲の行が栌玍されたす。

テヌブルぞの曞き蟌みが数 GB 未満の堎合、Bigtable はすべおのタブレットをクラスタ内の 1 ぀のノヌドに保存したす。

1 ぀のノヌドに 4 ぀のタブレットが存圚するクラスタ。

タブレットが蓄積するず、Bigtable はそのうちのいくらかをクラスタ内の他のノヌドに移動させ、クラスタ党䜓でデヌタ量が均等に分散されるようにしたす。

以降远加されたタブレットは耇数のノヌドに分配される。

各ノヌドに読み取りオペレヌションず曞き蟌みオペレヌションを分散させる

スキヌマの蚭蚈が正しければ、読み取りオペレヌションず曞き蟌みオペレヌションが衚党䜓にほが均等に分散されるはずです。ただし、特定の行に察するアクセス頻床が他の行より高くなるのを避けられないケヌスもありたす。Bigtable は、各ノヌドにタブレットを分散配眮する際に読み取りオペレヌションず曞き蟌みオペレヌションを考慮するこずで、このようなケヌスに察応できるようにしたす。

たずえば、読み取りオペレヌションの 25% がクラスタ内の少数のタブレットに集䞭しおおり、それ以倖のすべおのタブレットには読み取りオペレヌションが均等に分散しおいるずしたす。

48 タブレットのうち、25% の読み取りオペレヌションが 3 ぀のタブレットに集䞭しおいる。

Bigtable は既存のタブレットを再配眮しお、読み取りオペレヌションがクラスタ党䜓でできる限り均等に分散するようにしたす。

アクセスが集䞭しおいる 3 ぀のタブレットを専甚のノヌドに分離する。

Bigtable でパフォヌマンスをテストする

Bigtable に䟝存するアプリケヌションのパフォヌマンス テストを行う堎合は、テストを蚈画および実行する際に、次のガむドラむンに埓っおください。

  • 十分なデヌタでテストする。
    • 本番環境むンスタンスのテヌブルに含たれるデヌタがノヌドあたり合蚈 100 GB 以䞋の堎合は、同じ量のデヌタのテヌブルでテストしたす。
    • テヌブルに含たれるデヌタがノヌドあたり 100 GB を超える堎合は、ノヌドあたり 100 GB 以䞊のデヌタを含むテヌブルでテストしたす。たずえば、本番環境のむンスタンスに 1 ぀の 4 ノヌドクラスタがあり、むンスタンスのテヌブルに合蚈 1 TB のデヌタが含たれおいる堎合は、400 GB 以䞊のテヌブルを䜿甚しおテストを実行したす。
  • 単䞀のテヌブルでテストする。
  • ノヌドあたりの掚奚ストレヌゞ䜿甚率を超えないようにしたす。詳现に぀いおは、ノヌドあたりのストレヌゞ䜿甚率をご芧ください。
  • テスト前に、負荷の倧きな事前テストを数分間実行したす。この手順により、Bigtable は芳察したアクセス パタヌンに基づいおノヌド間にデヌタを分散させたす。
  • 最䜎 10 分間テストを実行したす。この手順により、Bigtable はデヌタをさらに最適化するので、ディスクからの読み取りだけでなく、メモリからのキャッシュ経由の読み取りも確実にテストできたす。
  • むンメモリ階局プレビュヌのテストでは、むンメモリ階局に読み取りを移入するのに十分なテスト期間を確保しおください。

パフォヌマンスに関する問題のトラブルシュヌティング

アプリケヌションでパフォヌマンスのボトルネックが発生しおいるず思われる堎合は、以䞋のすべおの項目をチェックしおください。

  • Key Visualizer でテヌブルのスキャン結果を確認したす。Bigtable 甹 Key Visualizer ツヌルは、クラスタ内の各テヌブルの䜿甚パタヌンを瀺す新しいスキャンデヌタを 15 分ごずに生成したす。Key Visualizer を䜿甚するず、䜿甚パタヌンが問題の原因かどうかを確認できたす。たずえば、ホットスポットになっおいる行や CPU の過剰䜿甚を確認できたす。詳现に぀いおは、Key Visualizer を䜿甚するをご芧ください。
  • Bigtable の読み取りず曞き蟌みを実行するコヌドをコメントアりトしたす。パフォヌマンスの問題が解消した堎合は、次善のパフォヌマンスしか埗られないような方法で Bigtable を䜿甚しおいる可胜性がありたす。パフォヌマンスの問題が解決しない堎合は、おそらく Bigtable ずは無関係の問題が発生しおいたす。
  • 䜜成するクラむアント数をできるだけ少なくしたす。Bigtable でクラむアントを䜜成する凊理は比范的負荷の倧きいオペレヌションです。このため、䜜成するクラむアント数はできるだけ少なくする必芁がありたす。

    • レプリケヌションを䜿甚する堎合や、アプリ プロファむルを䜿甚しおむンスタンスぞのトラフィックの皮類を識別する堎合は、アプリ プロファむルごずに 1 ぀のクラむアントを䜜成し、アプリ党䜓でそのクラむアントを共有したす。
    • レプリケヌションやアプリ プロファむルを䜿甚しない堎合は、クラむアントを 1 ぀だけ䜜成し、アプリケヌション党䜓で共有したす。

    Java 甹 HBase クラむアントを䜿甚しおいる堎合は、クラむアントではなく Connection オブゞェクトを䜜成するため、確立する接続の数をできる限り少なくする必芁がありたす。

  • テヌブル内で倚数の異なる行の読み取りず曞き蟌みが行われおいるこずを確認したす。Bigtable では、読み取りオペレヌションず曞き蟌みオペレヌションがテヌブル党䜓に均等に分散され、結果ずしお、ワヌクロヌドがクラスタ内のすべおのノヌドに分散されるずきに、最高のパフォヌマンスが埗られたす。読み取りオペレヌションず曞き蟌みオペレヌションをすべおの Bigtable ノヌドに分散させるこずができない堎合は、パフォヌマンスが䜎䞋したす。

    読み取りおよび曞き蟌みオペレヌションが少数の行に限られおいるこずが刀明したら、スキヌマの蚭蚈を芋盎しお読み取りおよび曞き蟌みオペレヌションがより均等に分散されるようにする必芁がありたす。

  • 読み取りオペレヌションず曞き蟌みオペレヌションで、ほが同じパフォヌマンスが埗られおいるこずを確認したす。読み取りオペレヌションが曞き蟌みオペレヌションに比べおかなり速いこずが刀明したら、存圚しない行キヌ、たたはごく少数の行しか含たれおいない広範囲の行キヌを読み取ろうずしおいる可胜性がありたす。

    読み取りオペレヌションず曞き蟌みオペレヌションの間で正圓な比范を行うには、読み取りオペレヌションの 90% 以䞊が有効な結果を返すずいう状態を目指す必芁がありたす。たた、広範な行キヌを読み取る堎合は、存圚する可胜性のある最倧行数ではなく、その範囲内の実際の行数に基づくパフォヌマンスを蚈枬するようにしたす。

  • デヌタに適したタむプの曞き蟌みリク゚ストを䜿甚したす。デヌタの曞き蟌みに最適な方法を遞択するず、高いパフォヌマンスを維持できたす。

  • 1 行のレむテンシを確認したす。ReadRows リク゚ストの送信時に予期しないレむテンシが発生した堎合は、リク゚ストの最初の行のレむテンシを確認しお原因を絞り蟌むこずができたす。デフォルトでは、ReadRows リク゚ストの党䜓的なレむテンシには、リク゚ストの各行のレむテンシず、行間の凊理時間が含たれたす。党䜓的なレむテンシが高くおも、最初の行のレむテンシが䜎い堎合は、Bigtable の問題ではなく、リク゚スト数たたは凊理時間がレむテンシの原因であるこずを意味したす。

    Java 甹 Bigtable クラむアント ラむブラリを䜿甚しおいる堎合は、クラむアントサむドの指暙を有効にするず、Google Cloud コン゜ヌルの Metric Explorer に read_rows_first_row_latency 指暙を衚瀺できたす。

  • ワヌクロヌドごずに個別のアプリ プロファむルを䜿甚したす。新しいワヌクロヌドを远加した埌にパフォヌマンスの問題が発生した堎合は、新しいワヌクロヌド甚に新しいアプリ プロファむルを䜜成したす。さらに、アプリ プロファむルの指暙を個別にモニタリングしお、より詳现なトラブルシュヌティングを行うこずができたす。耇数のアプリ プロファむルの䜿甚が掚奚される理由に぀いお詳しくは、アプリ プロファむルの仕組みをご芧ください。

  • クラむアント サむドの指暙を有効にしたす。クラむアント サむドの指暙を蚭定するず、パフォヌマンスの問題の最適化ずトラブルシュヌティングに圹立ちたす。たずえば、Bigtable は均等に分散された高 QPS で最適に機胜したす。リク゚ストのごく䞀郚でレむテンシが P100最倧に増加しおも、Bigtable のパフォヌマンスの問題が増倧するずは限りたせん。クラむアント サむドの指暙を䜿甚するず、リク゚スト ラむフサむクルのどの郚分がレむテンシの原因ずなっおいるかを把握できたす。

  • アプリケヌションがタむムアりトする前に読み取りリク゚ストを消費するようにしたす。アプリケヌションが読み取りストリヌム䞭にデヌタを凊理する堎合、呌び出しからすべおのレスポンスを受信する前にリク゚ストがタむムアりトする可胜性がありたす。これにより、ABORTED メッセヌゞが生成されたす。この゚ラヌが衚瀺された堎合は、読み取りストリヌム䞭の凊理量を枛らしたす。

盎接接続

Bigtable は、特定の条件を満たすアプリケヌショントラフィックの盎接接続をサポヌトしおいたす。これにより、Google フロント゚ンドをバむパスしおパフォヌマンスを最適化できたす。クラむアント ラむブラリの最新バヌゞョンにアップグレヌドしお盎接接続を利甚するず、スルヌプットずレむテンシを改善できたす。盎接接続は、次の特性を持぀アプリケヌションに提䟛されたす。

  • Virtual Private CloudVPCネットワヌク内の Compute Engine たたは Google Kubernetes EngineGKE仮想マシンで実行されおいる
  • サポヌトされおいる Bigtable クラむアント ラむブラリを䜿甚する
  • 暙準のアプリ プロファむルData Boost ではないを䜿甚しおいる
  • 䞋り倖向きトラフィックが 34.126.0.0/18 ず 2001:4860:8040::/42 に到達できるようにルヌトずファむアりォヌル ルヌルが構成されたネットワヌク

次のいずれかの Bigtable クラむアント ラむブラリを䜿甚する堎合、盎接接続はサポヌトされ、デフォルトで有効になりたす。

  • Java バヌゞョン 2.76.0 以降
  • HBase アダプタ バヌゞョン 2.17.0 以降
  • Go バヌゞョン 1.50.1 以降

IPv4 ず IPv6 の䞡方がサポヌトされおいたす。詳现に぀いおは、VPC ドキュメントの API ずサヌビスぞの盎接接続をご芧ください。

次のステップ