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 Skalierungsfaktor für Knoten 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 basierend auf Messwerten wie der CPU-Nutzung des Clusters skalieren. Wenn Ihr Cluster beispielsweise stark ausgelastet und die CPU-Nutzung hoch ist, können Sie weitere Knoten in den Cluster aufnehmen, bis dessen CPU-Nutzung sinkt. Auf der anderen Seite können Sie auch Geld sparen, indem Sie Knoten aus dem Cluster entfernen, wenn er nicht so stark ausgelastet ist.
Sie können einen Bigtable-Cluster so skalieren:
Horizontale Skalierung
- Autoscaling
- Manuelle Knotenzuweisung
In den meisten Fällen empfiehlt es sich, Autoscaling auszuwählen. Wenn Sie das Autoscaling für einen Cluster aktivieren, überwacht Bigtable kontinuierlich den Cluster und passt die Anzahl der Knoten automatisch entsprechend Ihren Einstellungen an.
Vertikale Skalierung der In-Memory-Stufe
Die Bigtable-In-Memory-Stufe verwendet eine vollständig verwaltete vertikale Skalierung für den Durchsatz, sodass Cluster fast sofort auf Spitzen im Punktlese-Traffic reagieren können.
Bei der vertikalen Skalierung wird jeder Knoten automatisch an die Anforderungen der Arbeitslast angepasst. Sie funktioniert nahtlos mit Bigtable-Autoscaling. Für jeden Bigtable-Knoten mit aktivierter In-Memory-Stufe gilt ein Limit für die vertikale Skalierung. Wenn dieses Limit erreicht ist, fügt Bigtable Autoscaling Knoten innerhalb der maximalen Knotenkonfiguration hinzu, um die Arbeitslast zu unterstützen und den Traffic neu zu verteilen.
Weitere Informationen zu den Limits für die vertikale Skalierung finden Sie unter Kontingente und Limits. Weitere Informationen zur In-Memory-Durchsatzkapazität pro Knoten finden Sie unter Leistung verstehen.
Skalierungsfaktor für Knoten
Wenn Sie einen Bigtable-Cluster erstellen, können Sie den Cluster mit einem Skalierungsfaktor von 2 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. Daher gibt es weniger Rechengrenzen zwischen Knoten im Cluster. Je nach Arbeitslast bietet die 2-fache Knotenskalierung unter anderem folgende Vorteile:
- Verbesserter Durchsatz und stabilere Tail-Latenz
- Bessere Fähigkeit, Hotspots zu absorbieren
Sie können einen Cluster mit aktiviertem 2-fachen Knotenskalierungsfaktor erstellen, wenn Sie dieGoogle Cloud Console oder die gcloud CLI verwenden.
Sie können die Knotenskalierung in 2er-Schritten mit Autoscaling oder manueller Knotenzuweisung konfigurieren. In der Enterprise Plus-Version müssen Sie die 2-fache Knotenskalierung aktivieren, um auf das erweiterte Limit für gestuften Speicher von 64 TB pro Knoten (Vorabversion) zuzugreifen.
Informationen zu Einschränkungen finden Sie unter Einschränkungen für den Knotenskalierungsfaktor.
Kleine Cluster
Die zweifache Knotenskalierung ist optimal für größere Arbeitslasten. Wenn Sie von der Standardskalierung (Faktor 1) auf die 2-fache Knotenskalierung umstellen möchten, sollten Sie die Kostenauswirkungen berücksichtigen. Bei einer kleineren Arbeitslast, z. B. einer Arbeitslast, die auf einem Cluster mit einem Knoten ausgeführt wird, kostet die Skalierung um das Zweifache doppelt so viel. Wenn Sie eine 2-fache Knotenskalierung für eine Arbeitslast verwenden, die zuvor auf einem Cluster mit 3 Knoten ausgeführt wurde, steigen die Kosten um 33 %.
Bei einer Arbeitslast, die zuvor auf einem großen Cluster ausgeführt wurde, z. B. einem Cluster mit 50 Knoten, ist der Effekt eines Skalierungsfaktors von 2 im Verhältnis zur Anzahl der Knoten gering.
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 die Einschränkungen für die 2-fache 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 Knoten hinzufügen, bevor Sie die Auslastung des Clusters erhöhen. 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. Wenn der Traffic wieder normal ist, ändern Sie die Knoteneinstellungen zurück.
Die In-Memory-Stufe bewältigt Trafficspitzen mit fast sofortiger vertikaler Skalierung. Wenn Bigtable Knoten durch Autoscaling hinzufügt und die Durchsatzkapazität der In-Memory-Ebene steigt, wird das Daten-Sharding in der In-Memory-Ebene automatisch verwaltet.
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 Sie beispielsweise eine große Anzahl von Lese- oder Schreibvorgängen für eine einzelne Zeile in Ihrer Tabelle haben, werden alle Lese- oder Schreibvorgänge an denselben Knoten in Ihrem Cluster gesendet. Das Hinzufügen von Knoten verbessert die Leistung also nicht. 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 weitere Informationen zum Entwerfen eines Schemas, mit dem Bigtable effektiv skaliert werden kann.
Einschränkungen für 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 Skalierungsfaktors für Knoten
Sie können einen Cluster mit Standardknotenskalierung nicht in einen Cluster mit 2-facher Knotenskalierung umwandeln. Sie müssen einen neuen Cluster erstellen und die 2-fache Knotenskalierung bei der Erstellung aktivieren. Weitere Informationen zum Hinzufügen eines Clusters zu einer Instanz finden Sie unter Instanz ändern.
Sie können die 2-fache Knotenskalierung für einen HDD-Cluster nicht konfigurieren.
Nächste Schritte
- Bigtable-Autoscaling
- Mehr darüber erfahren, wie Sie sowohl programmatisch als auch über die Google Cloud Console Ihre Instanz überwachen.