Skalierung
Beim Skalieren eines Clusters werden dem Cluster Knoten hinzugefügt oder daraus entfernt, um auf Änderungen der Arbeitslast oder Datenspeicheranforderungen des Clusters zu reagieren. Wenn Sie einen Cluster erstellen, können Sie auch den Knotenskalierungsfaktor für den Cluster konfigurieren. Bevor Sie die Skalierung konfigurieren, sollten Sie sich mit den Einschränkungen vertraut machen.
Sie können Ihren Bigtable-Cluster anhand von Messwerten wie der CPU-Auslastung des Clusters skalieren. Wenn Ihr Cluster beispielsweise stark ausgelastet und die CPU-Auslastung hoch ist, können Sie weitere Knoten in den Cluster aufnehmen, bis die CPU-Auslastung sinkt. Sie können auch Kosten sparen, indem Sie Knoten aus dem Cluster entfernen, wenn er nicht stark genutzt wird.
Sie können einen Bigtable-Cluster so skalieren:
Horizontale Skalierung
- Autoscaling
- Manuelle Knotenzuweisung
In den meisten Fällen sollten Sie Autoscaling auswählen. Wenn Sie das Autoscaling für einen Cluster aktivieren, überwacht Bigtable den Cluster kontinuierlich und passt die Anzahl der Knoten automatisch entsprechend Ihren Einstellungen an.
Vertikale Skalierung der In-Memory-Stufe
Die In-Memory-Stufe von Bigtable verwendet eine vollständig verwaltete vertikale Skalierung für den Durchsatz, sodass Cluster fast sofort auf Spitzen im Point-Read-Traffic reagieren können.
Die vertikale Skalierung passt jeden Knoten automatisch an die Anforderungen der Arbeitslast an und funktioniert nahtlos mit dem Autoscaling von Bigtable. Für jeden Bigtable-Knoten, bei dem die In-Memory-Stufe aktiviert ist, gilt ein Limit für die vertikale Skalierung. Wenn dieses Limit erreicht ist, fügt das Autoscaling von Bigtable Knoten innerhalb der maximalen Knotenkonfiguration hinzu, um die Arbeitslast zu unterstützen und den Traffic neu auszubalancieren.
Weitere Informationen zu den Limits für die vertikale Skalierung finden Sie unter Kontingente und Limits. Weitere Informationen zur Durchsatzkapazität pro Knoten in der In-Memory-Stufe finden Sie unter Leistung verstehen.
Knotenskalierungsfaktor
Wenn Sie einen Bigtable-Cluster erstellen, können Sie ihn mit einem Knotenskalierungsfaktor von 2x konfigurieren. Wenn Sie diese Konfiguration auswählen, behandelt Bigtable zwei Standardknoten als einen größeren einzelnen Rechenknoten und der Cluster wird immer in Schritten von zwei Knoten skaliert. Dadurch gibt es weniger Rechengrenzen zwischen den Knoten im Cluster. Je nach Arbeitslast bietet die 2x-Knotenskalierung folgende Vorteile:
- Verbesserte Stabilität des Durchsatzes und der Tail-Latenz
- Bessere Möglichkeit, Hotspots zu absorbieren
Sie können einen Cluster mit aktiviertem 2x-Knotenskalierungsfaktor erstellen, wenn Sie die Google Cloud Console oder die gcloud CLI verwenden.
Sie können die 2x-Knotenskalierung mit Autoscaling oder manueller Knotenzuweisung konfigurieren. In der Enterprise Plus-Version müssen Sie die 2x-Knotenskalierung aktivieren, um auf das erweiterte Limit für mehrstufigen Speicher von 64 TB pro Knoten zuzugreifen (Vorschau).
Einschränkungen finden Sie unter Einschränkungen des Knotenskalierungsfaktors.
Kleine Cluster
Die 2x-Knotenskalierung ist optimal für größere Arbeitslasten. Wenn Sie von der Standardknotenskalierung (um den Faktor 1) zur 2x-Knotenskalierung wechseln möchten, sollten Sie die Auswirkungen auf die Kosten berücksichtigen. Bei einer kleineren Arbeitslast, z. B. einer, die auf einem Cluster mit einem Knoten ausgeführt wird, kostet die 2x-Knotenskalierung doppelt so viel. Ebenso steigen die Kosten um 33 %, wenn Sie die 2x-Knotenskalierung für eine Arbeitslast verwenden, die zuvor auf einem Cluster mit drei Knoten ausgeführt wurde.
Bei einer Arbeitslast, die zuvor auf einem großen Cluster ausgeführt wurde, z. B. einem Cluster mit 50 Knoten, ist die Auswirkung eines Knotenskalierungsfaktors von 2x im Verhältnis zur Anzahl der Knoten gering.
Bigtable gibt einen Fehler zurück, wenn Sie versuchen, einen Cluster mit einem Knotenskalierungsfaktor von 2x in einer nicht unterstützten Zone zu erstellen.
Beschränkungen
Die Clusterskalierung hängt von der Knotenverfügbarkeit ab, dauert einige Zeit, kann ein ungeeignetes Schemadesign nicht kompensieren und muss schrittweise erfolgen. In den folgenden Abschnitten werden diese Einschränkungen sowie Einschränkungen für die 2x-Knotenskalierung beschrieben.
Knotenverfügbarkeit
Knotenkontingente gelten unabhängig davon, ob für einen Cluster die manuelle Knotenzuweisung oder das Autoscaling aktiviert ist. Ausführliche Informationen finden Sie unter Kontingente und Knotenverfügbarkeit.
Verzögerung beim Ausbalancieren von Knoten
Nachdem Sie Knoten einem Cluster hinzugefügt haben, kann es bis zu 20 Minuten unter Last dauern, bevor Sie eine signifikante Verbesserung der Leistung des Clusters feststellen. Daher wird das Hinzufügen von Knoten zu Ihrem Cluster aufgrund der CPU-Last keine Leistungsverbesserung bringen, wenn Ihre Arbeitslast mit kurzen Schüben hoher Aktivität verbunden ist. Sobald Bigtable so weit ist und die Daten neu ausbalanciert hat, ist der kurze Aktivitätsschub bereits wieder vorüber.
Um diese Verzögerung einzuplanen, können Sie Ihrem Cluster entweder programmatisch oder über die Google Cloud Console bevor Sie die Auslastung des Clusters erhöhen, Knoten hinzufügen. Diese Vorgehensweise verschafft Bigtable Zeit, die Daten über die zusätzlichen Knoten auszubalancieren, bevor die Arbeitslast zunimmt. Ändern Sie bei Clustern, die die manuelle Knotenzuweisung verwenden, die Anzahl der Knoten. Ändern Sie bei Clustern mit Autoscaling die Mindestanzahl an Knoten. Nachdem der Traffic wieder normal ist, ändern Sie die Knoteneinstellungen wieder.
Die In-Memory-Stufe verarbeitet Trafficspitzen mit einer fast sofortigen vertikalen Skalierung. Wenn Bigtable über das Autoscaling Knoten hinzufügt und die Durchsatzkapazität der In-Memory-Stufe steigt, verwaltet es automatisch das Sharding von Daten in der In-Memory-Stufe.
Latenzerhöhungen durch zu schnelles Herunterskalieren
Wenn Sie die Anzahl der Knoten in einem Cluster verringern, um sie herunterzuskalieren, versuchen Sie, die Clustergröße in einem Zeitraum von 10 Minuten nicht um mehr als 10 % zu reduzieren. Wenn Sie zu schnell herunterskalieren, können Leistungsprobleme auftreten, z. B. eine höhere Latenz, wenn die verbleibenden Knoten im Cluster vorübergehend überlastet werden.
Probleme beim Schemadesign
Wenn das Schemadesign Ihrer Tabelle problematisch ist, führen weitere Knoten in Ihrem Bigtable-Cluster möglicherweise nicht zu besserer Leistung. Wenn sich beispielsweise eine große Anzahl von Lese- oder Schreibzugriffen auf eine einzelne Zeile Ihrer Tabelle richten, betreffen alle Lese- oder Schreibzugriffe denselben Knoten im Cluster. Daher führt das Hinzufügen von Knoten nicht zu einer Leistungsverbesserung. Sind die Lese- und Schreibzugriffe hingegen gleichmäßig über die Zeilen der Tabelle verteilt, führen mehr Knoten im Allgemeinen zu besserer Leistung.
Unter Schema entwerfen finden Sie Details dazu, wie Sie ein Schema entwerfen, mit dem Bigtable effektiv skaliert werden kann.
Einschränkungen der Versionen
Die In-Memory-Stufe und die vertikale Skalierung sind nur für SSD-Cluster in der Enterprise Plus-Version verfügbar.
Einschränkungen des Knotenskalierungsfaktors
Sie können einen Cluster mit Standardknotenskalierung nicht so umwandeln, dass er die 2x-Knotenskalierung verwendet. Sie müssen einen neuen Cluster erstellen und die 2x-Knotenskalierung bei der Erstellung aktivieren. Weitere Informationen zum Hinzufügen eines Clusters zu einer Instanz finden Sie unter Instanz ändern.
Sie können die 2x-Knotenskalierung nicht für einen HDD-Cluster konfigurieren.
Sie können Cluster mit 2x-Knotenskalierung in jeder Bigtable-Region, aber nicht in jeder Zone erstellen. Die folgenden Zonen können keinen Cluster mit 2x-Knotenskalierung enthalten:
- me-central2-b
Nächste Schritte
- Informationen zur Bigtable-Autoskalierung
- Mehr darüber erfahren, wie Sie Ihre Instanz überwachen, sowohl programmatisch als auch über die Google Cloud Console.