Skalierung

Beim Skalieren eines Clusters werden einem Cluster Knoten hinzugefügt oder daraus entfernt, um auf Änderungen der Arbeitslast oder Datenspeicheranforderungen des Clusters zu reagieren.

Sie können einen Bigtable-Cluster so skalieren:

In den meisten Fällen sollten Sie das Autoscaling auswä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.

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-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.

Skalierungsfaktor für Knoten

Wenn Sie einen Bigtable-Cluster erstellen, können Sie ihn mit einem 2-fachen Knotenskalationsfaktor konfigurieren. Wenn Sie diese Konfiguration auswählen, behandelt Bigtable zwei Standardknoten als einen größeren einzelnen Compute-Knoten 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 2-fache Knotenskala unter anderem folgende Vorteile:

  • Verbesserte Stabilität von Durchsatz und Endlatenz
  • Bessere Möglichkeit, Hotspots zu absorbieren

Sie können einen Cluster mit aktiviertem 2-fachen Knotenskalafaktor mit der Google Cloud Console oder der gcloud CLI erstellen.

Sie können die 2-fache Knotenskala mit Autoscaling oder manueller Knotenzuweisung konfigurieren.

Informationen zu den Einschränkungen finden Sie unter Einschränkungen des Knotenskalationsfaktors.

Kleine Cluster

Die 2-fache Knotenskala ist optimal für größere Arbeitslasten. Wenn Sie von der Standardknotenskala (mit dem Faktor 1) zur doppelten Knotenskala wechseln möchten, sollten Sie die Kosten berücksichtigen. Bei einer kleineren Arbeitslast, z. B. einer, die auf einem Cluster mit einem Knoten ausgeführt wird, kostet die 2-fache Knotenskala doppelt so viel. Wenn Sie die Knotenskala für eine Arbeitslast, die zuvor auf einem Cluster mit drei Knoten ausgeführt wurde, auf das Doppelte erhöhen, steigen die Kosten ebenfalls 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 doppelten Knotenskalierungsfaktors im Vergleich zur Anzahl der Knoten jedoch gering.

Bigtable gibt einen Fehler zurück, wenn Sie versuchen, einen Cluster mit einem doppelten Knoten-Skalierungsfaktor in einer nicht unterstützten Zone zu erstellen.

Beschränkungen

Die Clusterskalierung hängt von der Knotenverfügbarkeit ab, dauert einige Zeit, kann ein unangemessenes Schemadesign nicht ausgleichen und muss schrittweise erfolgen. In den folgenden Abschnitten werden diese Einschränkungen sowie Einschränkungen für die Verdoppelung der Knotenanzahl 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.

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. 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 skalieren kann.

Einschränkungen für den Skalierungsfaktor für Knoten

Sie können einen Cluster mit standardmäßiger Knotenskala nicht in einen Cluster mit doppelter Knotenskala umwandeln. Sie müssen einen neuen Cluster erstellen und die doppelte Knotenskala beim Erstellen aktivieren. Weitere Informationen zum Hinzufügen eines Clusters zu einer Instanz finden Sie unter Instanz ändern.

Für einen HDD-Cluster kann keine 2-fache Knotenskala konfiguriert werden.

Sie können Cluster mit doppelter Knotenskala in jeder Bigtable-Region, aber nicht in jeder Zone erstellen. In den folgenden Zonen kann kein Cluster mit doppelter Knotenskala vorhanden sein:

  • asia-northeast1-c
  • asia-northeast2-c
  • asia-south1-c
  • europe-central2-c
  • me-central2-b
  • me-central2-c
  • northamerica-northeast1-a
  • northamerica-northeast1-b
  • southamerica-east1-c
  • us-central2-b
  • us-central2-d
  • us-south1-b
  • us-south1-c

Nächste Schritte