Hot-Tabellenreihen
Damit Sie Leistungsprobleme beheben können, bietet Bigtable die Möglichkeit, häufig genutzte Tabellenzeilen in einem Cluster zu identifizieren und zu beobachten. Auf dieser Seite werden Hot-Tabellenreihen, wie Sie eine Liste Hot-Tabellenreihen abrufen können und Situationen bei der Identifizierung Hot-Tables beschrieben. Bevor Sie diese Seite lesen, sollten Sie sich die Bigtable-Übersicht ansehen.
Der Name der Methode, mit der Sie eine Liste der häufig genutzten Tabellenreihen abrufen, hängt von der verwendeten Sprache ab. Der Einfachheit halber wird die Methode in diesem Dokument durch den RPC Cloud Bigtable Admin API-Namen ListHotTablets
bezeichnet. So erhalten Sie eine Liste der häufig genutzten Tabellenreihen:
Die Ermittlung von Hot-Tabellenreihen kann bei den folgenden Aufgaben helfen:
- Problematische Zeilenschlüssel identifizieren
- Hotspots mit Genauigkeit auf Minutenebene beobachten
- Problematische Tabellen in einem Cluster identifizieren
Hot-Tabellenreihen verstehen
Eine Bigtable-Tabelle ist in Blöcke von fortlaufenden Zeilen unterteilt, die als Tabellenreihen bezeichnet werden. Jede Tabellenreihe ist einem Knoten zugeordnet und Vorgänge auf diesen Zeilen werden auf dem Knoten ausgeführt. Zur Optimierung der Leistung werden Tabellenreihen je nach Zugriffsmustern aufgeteilt oder auf einen anderen Knoten verschoben. Basierend auf Muster für den Nutzerzugriff – Lese-, Schreib- und Scanvorgänge – werden Tabellenreihen auf die Knoten neu verteilt. Weitere Informationen zum Load-Balancing finden Sie unter Datenoptimierung im Zeitverlauf.
Eine Hot-Tabellenreihe ist eine Tabellenreihe, die eine übermäßige Auslastung der Knoten-CPU aufweist, da die Tabellenreihe einen unverhältnismäßig hohen Prozentsatz an CPU verwendet als andere Tabellenreihen. Diese unausgeglichene Knotennutzung kann zu Latenz- und Replikationsverzögerungen führen.
Die häufigsten Ursachen für Hot-Tabellenreihen sind Hotspots, die auftreten, wenn Ihre Anwendung häufig auf Zeilen zugreift, die sich in der Tabelle nahe beieinander befinden. Hotspots sind oft das Ergebnis eines Schemadesigns, das nicht für die Verteilung der Zugriffsmuster Ihrer Anwendung auf die Tabelle optimiert ist. Wie Sie Ihre Zeilenschlüssel so konfigurieren, dass keine Hotspots auftreten, erfahren Sie unter Best Practices für Schemadesign.
Wenn Sie eine Liste der Hot-Tabellenreihen abrufen möchten, müssen Sie einer Rolle mit der Berechtigung bigtable.viewer
zugewiesen sein.
Ausgabe
Die Methode ListHotTablets
gibt die folgenden Daten für einen bestimmten Cluster in einer Instanz zurück.
- Name der Tabellenreihe. Die eindeutige ID, die Bigtable der Hot-Tabellenreihen zugewiesen. Dieses Feld wird in der gcloud CLI nicht angezeigt.
- Tabelle. Die ID der Tabelle, die mit dem Hot-Tabellenreihen verknüpft ist.
- CPU-Nutzung. Die durchschnittliche CPU-Auslastung des Knotens, der der Hot-Tabellenreihe zugeordnet ist, ausgedrückt als Prozentsatz während dieses 1-Minuten-Intervalls. Dieser Prozentsatz ist der Durchschnitt der Summe der Schreib-CPU und Lese-CPU von Startzeit bis Ende.
- Startzeit. Die Startzeit des Hot-Tabellenreihenzeitraums.
- Ende. Die Endzeit des Hot-Tabellenreihenzeitraums.
- Startschlüssel. Der erste Zeilenschlüssel in der Hot-Tabellenreihe.
- Endschlüssel: Der letzte Zeilenschlüssel in der Hot-Tabellenreihe. Wenn Start- und Endschlüssel identisch sind, wird das Suffix
\000
angehängt, was bedeutet, dass das Tablet eine einzige Zeile umfasst.
Schlüssel werden lexikografisch in einer Tabellenreihe sortiert, sodass jeder Schlüssel zwischen dem Startschlüssel und dem Endschlüssel in dieser Hot-Tabellenreihe enthalten ist.
Hotspots werden bei einer Auflösung von einer Minute berechnet und eine Tabellenreihe wird möglicherweise wieder in der Ausgabe angezeigt. Mit anderen Worten kann eine einzelne Tabellenreihe mehrere Minuten lang „hot” sein.
Standardmäßig durchsucht ListHotTablets
die letzten 24 Stunden. Geben Sie eine Start- und Endzeit an, um innerhalb eines bestimmten Zeitraums zu suchen.
Es werden maximal 50 Hot-Tabellenreihen zurückgegeben. Geben Sie eine Seitengröße an, um diese Einstellung zu ändern.
Die Methode gibt eine leere Liste zurück, wenn keine der Tabellen im Cluster hot ist.
Beispiel mit der gcloud CLI
Bevor Sie dieses Beispiel kopieren, installieren Sie die gcloud
CLI.
Führen Sie den Befehl hot-tablets list
in Cloud Shell oder im lokalen Terminalfenster aus, um eine Liste der häufig genutzten Tabellen für einen bestimmten Cluster aufzurufen.
gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID
Ersetzen Sie Folgendes:
CLUSTER_ID
: Die permanente Kennzeichnung des ClustersINSTANCE_ID
: Die permanente Kennzeichnung der Instanz
Bei Hot-Tabellenreihen im Cluster zeigt das Terminal eine Ausgabe ähnlich der folgenden an. Hot-Tabellenreihen werden in einem Cluster in absteigender Reihenfolge der CPU-Nutzung aufgelistet.
TABLE CPU_USAGE START_TIME END_TIME START_KEY END_KEY test-data 89.3 2021-12-14T01:19:57+00:00 2021-12-14T01:20:57+00:00 user29333893046… user29333893046… test-data 22.8 2021-12-14T01:04:59+00:00 2021-12-14T01:06:59+00:00 user29333893046… user29345657428… test-data 20.9 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user54519105346… user545293 test-data 16.5 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user49196524328… user49206
Anwendungsfälle für Hot-Tabellenreihendaten
Durch die Identifizierung von Hot-Tabellenreihen in einem Cluster können Sie Leistungsprobleme beheben. Sie können die Methode ListHotTablets
in Kombination mit anderen Monitoringtools wie dem Key Visualizer-Diagnosetool für Bigtable verwenden.
Problematische Zeilenschlüssel identifizieren
Sie können ListHotTablets
verwenden, um bestimmte Zeilenschlüssel und Zeilenbereiche zu identifizieren. Dies kann Zugriff auf Muster ermöglichen, die zu Hotspots führen können.
Angenommen, das Zeilenschlüsselschema einer Tabelle lautet [user_id]#[event_timestamp]
, die Nutzer-IDs und Zeitstempel sind durch ein Hash-Symbol getrennt. Mit einer Liste mit häufig genutzten Tabellenreihen können Sie feststellen, ob bestimmte Nutzer-IDs oder Ereigniszeitstempel Hotspots verursachen. Wenn Sie die Zugriffsmuster ermitteln, können Sie weitere Maßnahmen ergreifen, z. B. den Zeilenschlüssel oder die Tabellen neu gestalten, um die Nutzung gleichmäßiger über den Schlüsselbereich zu verteilen. Wenn die Nutzer-IDs in diesem Beispiel kontinuierlich ansteigen und aus diesem Grund Hotspots verursachen, können Sie Nutzer-IDs in einer anderen Reihenfolge zuweisen oder stattdessen UUID (Universally Unique Identifiers) verwenden.
Wenn der Start- und Endzeilenschlüssel identisch sind und dem Endzeilenschlüssel das Suffix \000
angehängt wird, wird ein Tablet mit einer einzelnen Zeile erstellt. Wenn dieses Tablet unverhältnismäßig viel Traffic erhält, kommt es zu Hotspots.
Hotspots mit Genauigkeit auf Minutenebene beobachten
Sie können eine Liste der häufig genutzten Tabellenreihen in Kombination mit den Heatmaps von Key Visualizer verwenden.
Key Visualizer ist zwar ein gutes Tool, um das Gesamtbild der Zugriffsmuster für Schlüsselbereiche zu beobachten, ListHotTablets
bietet jedoch eine höhere Granularität.
Nach der Untersuchung von Heatmaps in Key Visualizer können Sie bestimmte Hotspots weiter untersuchen. Da Key Visualizer über mehrere Wochen ausgeführt wird, werden die Daten für Hotspots in 15-Minuten-Intervallen zusammengefasst. Darüber hinaus können im gleichen Key Visualizer-Schlüsselbereich mehrere Tabellenreihen kombiniert werden.
Nachdem Sie Key Visualizer zum Ermitteln des Zeitraums verwendet haben, in dem die Hotspots aufgetreten sind, können Sie ListHotTablets
für eine größere Granularität sowohl im Schlüssel- als auch im Zeitbereich ausführen. Eine höhere Granularität ist besonders nützlich für die zeitliche Nutzung.
ListHotTablets
kann kurzlebige Hotspots identifizieren, die Key Visualizer nicht nutzen kann.
Problematische Tabellen in einem Cluster identifizieren
Da Key Visualizer auf Tabellenebene arbeitet, ist es nicht immer die beste Wahl, um ein Problem in einem Cluster mit mehreren Tabellen zu beheben.
ListHotTablets
wird auf Clusterebene ausgeführt, sodass Sie damit Tabellen mit hoher CPU-Auslastung identifizieren und das Problem eingrenzen können.
Nächste Schritte
- Informationen zur Leistung in Bigtable.
- Weitere Informationen zu Bigtable-Monitoring
- Anleitung zum Leistungsbenchmark erstellen