In diesem Dokument finden Sie Empfehlungen für Arbeitslasten und Bereitstellungen zur Größenanpassung von AlloyDB for PostgreSQL-Instanzen sowohl für OLTP- (Online Transaction Processing) als auch für OLAP-Arbeitslasten (Online Analytical Processing).
Übersicht
AlloyDB for PostgreSQL bietet die folgenden integrierten Funktionen, mit denen Sie die Datenbankleistung verbessern können:
- Automatische Speicherverwaltung
- Adaptives Autovacuum
- Optimierte integrierte Leistungseinstellungen
- Niedrige Replikationsverzögerung
- Wartung ohne Unterbrechungen mit einer Ausfallzeit von weniger als einer Sekunde für die primäre Instanz und ohne Ausfallzeit für die Lesepoolknoten während Skalierungsvorgängen
Die Leistungsoptimierung Ihrer AlloyDB for PostgreSQL-Instanz umfasst Folgendes:
- Primäre und Lesepoolinstanzen richtig dimensionieren
- Flags aktualisieren, die sich auf die Leistung auswirken
Überlegungen zur Größe
Bevor Sie die Größe Ihrer AlloyDB for PostgreSQL-Instanz festlegen, müssen Sie Folgendes ermitteln:
- Arbeitslasttyp:OLTP, OLAP oder HTAP
- Leistungsanforderungen:Anforderungen an Latenz und Durchsatz
- Erwartete Datengröße:Größe der Daten, die Sie in AlloyDB for PostgreSQL speichern möchten, und Größe des aktiven Datensatzes
- Größe der Arbeitslast:Zunahme oder Wachstum der Datenmenge im Laufe der Zeit
OLTP-Arbeitslasten (Online Transaction Processing)
Sie können Ihre AlloyDB for PostgreSQL-Datenbank als zonale Instanz (einzelner Knoten) oder als hochverfügbare Instanz (zwei Knoten in jeder Zone) bereitstellen. Optional können Sie auch Lesepoolinstanzen und einen sekundären Cluster in einer anderen Region für geografisch verteilte Arbeitslasten oder für die Notfallwiederherstellung hinzufügen.
AlloyDB for PostgreSQL wird mit einer verteilten Architektur in Cloud-Skala mit deaggregierten Rechen- und Speicherressourcen bereitgestellt. Schreibvorgänge werden bestätigt, sobald die WAL-Dateien (Write Ahead Logs) im regionalen Speicher gespeichert sind. Die Blockmaterialisierung wird in den Speicher ausgelagert.
Bei einer mehrstufigen Cache-Architektur werden Daten ebenfalls automatisch zwischen Puffercache, ultraschnellem Cache und der intelligenten Speicher-Engine platziert. Aufgrund dieser mehrstufigen Cache-Architektur in AlloyDB for PostgreSQL sind Eingabe- und Ausgabevorgänge pro Sekunde (IOPs) im Kontext von AlloyDB for PostgreSQL nicht relevant, um sie mit anderen Datenbanksystemen zu vergleichen.
Die Angabe von Transaktionen pro Sekunde (TPS) bzw. Transaktionen pro Minute (TPM) kann jedoch einen aussagekräftigen Vergleich liefern, um die Menge der Daten zu ermitteln, die von AlloyDB for PostgreSQL verarbeitet werden können.
Der primäre Messwert für die Größe ist die TPS. So schätzen Sie die erforderliche AlloyDB for PostgreSQL-Größe ab:
- Ermitteln Sie Ihre vorhandene Arbeitslast. Wenn Sie von Ihrer selbst verwalteten PostgreSQL-Datenbank oder von anderen kommerziellen Datenbanken migrieren, haben Sie möglicherweise bereits den TPS-Wert für Ihre vorhandene Arbeitslast.
- Analysieren Sie Ihre Abfragen. Identifizieren Sie die kritischsten Abfragen in Ihrer Arbeitslast und ermitteln Sie ihre Leistungsanforderungen.
- Verwenden Sie ein Tool wie
HammerDB
oderpgbench
. Mit diesen Tools können Sie AlloyDB for PostgreSQL benchmarken und feststellen, ob die Maschinengröße Ihren TPS-Anforderungen entspricht. - Verwenden Sie den OLTP-Benchmarking-Leitfaden für AlloyDB for PostgreSQL. In diesem Leitfaden finden Sie Leistungsdaten für verschiedene AlloyDB for PostgreSQL-Konfigurationen, mit denen Sie eine Konfiguration finden, die Ihren TPS-Anforderungen entspricht.
- Wählen Sie eine geeignete AlloyDB for PostgreSQL-Größe aus. Berücksichtigen Sie Ihre aktuelle Datenmenge und die zukünftigen Wachstumserwartungen.
Richtlinien für die Maschinengröße
Die folgende Beispieltabelle enthält Empfehlungen für Daten mit TPC-C-Benchmarking mit einem Lese-/Schreibverhältnis von etwa 65% Lese- und 35% Schreibvorgänge. Bei der Größenanpassung einer AlloyDB for PostgreSQL-Instanz sollten Sie eine stabile CPU-Auslastung von etwa 60–70% anstreben, um den Overhead der Betriebssystemplanung zu vermeiden. So bleibt ein gewisser Spielraum für Spitzen bei der Ressourcennutzung durch Clientanwendungen.
vCPU/Mem | Empfohlener Bereich für Transaktionen/Sek. (30% im Cache) |
Empfohlene Arbeits datengröße (bis zu 128 TB Gesamtgröße) |
Empfohlene max_connections |
---|---|---|---|
2 / 16 GB | Bis zu 1.000 | Bis zu 100 GB | 1000 |
4 / 32 GB | Bis zu 2.500 | Bis zu 250 GB | 2000 |
8/ 64 GB | Bis zu 4.000 | Bis zu 500 GB | 4000 |
16 / 128 GB | Bis zu 8.000 | Bis zu 1 TB | 5.000 |
32 / 256 GB | Bis zu 14.000 | Bis zu 3 TB | 5.000 |
64 / 512 GB | Bis zu 20.000 | Bis zu 8 TB | 5.000 |
96 / 768 GB | Bis zu 25.000 | Bis zu 16 TB | 5.000 |
128 / 864 GB | Größer als 20.000 | Bis zu 32 TB | 5.000 |
Bereitstellungstypen
Je nach Arbeitslast können Sie AlloyDB for PostgreSQL als primäre Instanz oder als primäre Instanz mit Lesepoolinstanz bereitstellen.
Nur primär
Wählen Sie die Bereitstellung nur für die primäre Region für die folgenden Arbeitslasten aus:
- Viel Schreiben, wenige bis mittelmäßige Lesevorgänge
- Leseintensive Abfragen mit wenigen Schreibvorgängen
- Typische OLTP-Lese-/Schreibvorgänge (60–70% Lesevorgänge, 30–40% Schreibvorgänge)
Weitere Informationen zu Maschinentypen finden Sie unter Allgemeine Richtlinie für die Maschinengröße.
Primär mit Lesepoolinstanz
Wenn Sie eine primäre Instanz mit Lesepool bereitstellen, beachten Sie Folgendes:
- Wenn Sie latenzempfindliche Lesevorgänge haben, sollten Sie Ihre Leseabfragen auf Lesepoolinstanzen auslagern, die eine 25-mal geringere Replikationsverzögerung als die Standard-PostgreSQL-Version bieten. Sie können bis zu 20 Knoten für alle Read Pool-Instanzen konfigurieren.
- Konfigurieren Sie mehrere Lesepoolinstanzen, wenn Sie mehr als eine Datenbank haben, z. B. CRM oder Finanzen in derselben Instanz. Diese Strategie trägt zu einer effektiven Caching- und Abfrageleistung bei.
- Sie können die Größe Ihrer primären und Lesepoolinstanzen je nach Ihren Anforderungen unterschiedlich festlegen. Weitere Informationen zu Best Practices für Lesepoolinstanzen finden Sie unter Best Practices zur Verbesserung der Leistung und Verfügbarkeit von AlloyDB.
- Fügen Sie für eine hohe Verfügbarkeit mehr als einen Knoten pro Lesepoolinstanz hinzu.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepool-Instanzen, um die Leistung von Leseabfragen zu verbessern. Dazu muss die spaltenorientierte Engine nicht auf der primären Instanz aktiviert werden.
Sie können integrierte Funktionen wie den Indexberater verwenden, um Indexe hinzuzufügen, die die Abfrageleistung verbessern können.
OLAP-Arbeitslasten
Bei OLAP-Arbeitslasten ist der primäre Messwert für die Größenanpassung die Abfrageleistung, insbesondere bei Abfragen, die einen vollständigen Tabellenscan oder Aggregationen erfordern. AlloyDB for PostgreSQL enthält eine integrierte spaltenorientierte Engine, die analytische Abfragen beschleunigt. Wenn Sie die spaltenbasierte Engine aktivieren, werden standardmäßig 30% des Arbeitsspeichers belegt und automatisch ultraschnelle Cache-Daten verwendet.
Weitere Informationen zum Ermitteln der OLAP-Leistung mit AlloyDB for PostgreSQL unter Verwendung einer TPC-H-Arbeitslast finden Sie im Leitfaden für das OLAP-Benchmarking mit AlloyDB for PostgreSQL.
Bereitstellungstypen
Je nach Arbeitslast können Sie AlloyDB for PostgreSQL als primäre Instanz oder als primäre Instanz mit Lesepoolinstanz bereitstellen.
Nur primär
Wenn Sie nur eine primäre Instanz bereitstellen, beachten Sie Folgendes:
- Diese Bereitstellung kann sowohl für Transaktionen als auch für analytische Abfragen (HTAP) verwendet werden.
- Aktivieren Sie die spaltenbasierte Engine, um OLAP-Abfragen zu unterstützen.
- Wir empfehlen, eine Bereitstellung mit 16 vCPUs oder mehr vorzunehmen, da diese Maschinen mehr Arbeitsspeicher für die Speicherung von spaltenbasierten Daten bieten.
Primär mit Lesepool
Wenn Sie eine primäre Instanz mit Lesepool bereitstellen, beachten Sie Folgendes:
- Wenn Sie viele Schreibvorgänge und auch latenzabhängige analytische Lesevorgänge mit geringen Verzögerungsanforderungen haben, sollten Sie die primäre Instanz mit aktivierter Hochverfügbarkeit und Lesepoolinstanzen bereitstellen.
- Aktivieren Sie die spaltenorientierte Engine in Lesepoolinstanzen, in denen Sie Ihre analytischen Abfragen ausführen.
- Konfigurieren Sie mehrere Lesepoolinstanzen, wenn Sie mehr als eine Datenbank haben, z. B. CRM oder Finanzen in derselben Instanz. Diese Strategie trägt zu einer effektiven Caching- und Abfrageleistung bei.
- Sie können die Größe Ihrer primären und Lesepoolinstanzen je nach Ihren Anforderungen unterschiedlich festlegen. Weitere Informationen zu Best Practices für Lesepoolinstanzen finden Sie unter Best Practices zur Verbesserung der Leistung und Verfügbarkeit von AlloyDB.
- Fügen Sie für eine hohe Verfügbarkeit mehr als einen Knoten pro Lesepoolinstanz hinzu.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepool-Instanzen, um die Leistung von Leseabfragen zu verbessern. Dazu muss die spaltenorientierte Engine nicht auf der primären Instanz aktiviert werden.
Nächste Schritte
- Best Practices zur Leistungs- und Verfügbarkeitsoptimierung
- AlloyDB for PostgreSQL for PostgreSQL OLTP Benchmarking Guide
- AlloyDB for PostgreSQL for PostgreSQL OLAP Benchmarking Guide