In diesem Dokument finden Sie Empfehlungen für Arbeitslasten und Bereitstellungen zum Dimensionieren von AlloyDB for PostgreSQL-Instanzen für OLTP-Arbeitslasten (Online Transaction Processing) und OLAP-Arbeitslasten (Online Analytical Processing).
Übersicht
Um die Datenbankleistung zu verbessern, bietet AlloyDB for PostgreSQL die folgenden integrierten Funktionen:
- Automatische Speicherverwaltung
- Adaptives Autovakuum
- Optimierte integrierte Leistungseinstellungen
- Geringe Replikationsverzögerung
- Wartung ohne Unterbrechungen mit Ausfallzeiten von unter einer Sekunde für die primären Knoten und ohne Ausfallzeiten für die Lesepoolknoten während Skalierungsvorgängen
Zur Leistungsoptimierung Ihrer AlloyDB for PostgreSQL-Instanz müssen Sie Folgendes verwalten:
- Größe der primären Instanz und der Lesepoolinstanzen richtig festlegen
- Aktualisieren von Flags, die sich auf die Leistung auswirken
Überlegungen zur Größenanpassung
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:die Größe der Daten, die Sie in AlloyDB for PostgreSQL speichern möchten, und die Größe des aktiven Datasets
- Umfang Ihrer Arbeitslast:Zunahme oder Wachstum der Datengröße 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 cloudbasierten, verteilten Architektur mit disaggregierter Rechenleistung und disaggregiertem Speicher bereitgestellt. Schreibvorgänge werden bestätigt, sobald die WAL-Dateien (Write-Ahead Logging) im regionalen Speicher gespeichert sind. Die Blockmaterialisierung wird an den Speicher ausgelagert.
Bei der mehrstufigen Cache-Architektur werden Daten automatisch zwischen dem Puffer-Cache, dem ultraschnellen Cache und der intelligenten Speicher-Engine platziert. Aufgrund dieser mehrstufigen Cachearchitektur, die in AlloyDB for PostgreSQL verwendet wird, sind Ein- und Ausgabevorgänge pro Sekunde (IOPs) im Kontext von AlloyDB for PostgreSQL nicht relevant, um sie mit anderen Datenbanksystemen zu vergleichen.
Die Verwendung von Transaktionen pro Sekunde (TPS)/Transaktionen pro Minute (TPM) kann jedoch einen aussagekräftigen Vergleich ermöglichen, um die Datenmenge zu verstehen, die von AlloyDB for PostgreSQL verarbeitet werden kann.
Der primäre Messwert für die Dimensionierung ist TPS. So schätzen Sie die erforderliche Größe für AlloyDB for PostgreSQL:
- Vorhandene Arbeitslast identifizieren: Wenn Sie entweder von Ihrer selbstverwalteten PostgreSQL-Datenbank oder von anderen kommerziellen Datenbanken migrieren, haben Sie möglicherweise bereits den TPS-Wert für Ihre vorhandene Arbeitslast.
- Abfragen analysieren: Identifizieren Sie die wichtigsten 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 Ihre TPS-Anforderungen erfüllt. - AlloyDB for PostgreSQL OLTP Benchmarking Guide verwenden In dieser Anleitung finden Sie Leistungsdaten für verschiedene AlloyDB for PostgreSQL-Konfigurationen, damit Sie eine Konfiguration finden, die Ihren TPS-Anforderungen entspricht.
- Wählen Sie eine geeignete Größe für AlloyDB for PostgreSQL aus. Berücksichtigen Sie die aktuelle Größe Ihrer Daten und die Erwartungen für zukünftiges Wachstum.
Richtlinien für die Maschinengröße
Die folgende Tabelle enthält Empfehlungen für Daten mit TPC-C-Benchmarking, bei denen das Lese-/Schreibverhältnis etwa 65% Lese- und 35% Schreibvorgänge beträgt. Bei der Dimensionierung einer AlloyDB for PostgreSQL-Instanz sollten Sie eine CPU-Auslastung im Steady State von etwa 60–70% anstreben, um den Planungsaufwand des Betriebssystems zu vermeiden. So bleibt etwas Spielraum für Spitzen bei der Ressourcennutzung durch Clientanwendungen.
vCPU/Mem | Empfohlene Transaktionen/Sek. Bereich (30% im Cache) |
Empfohlene Größe der Arbeitsdaten (bis zu 128 TB insgesamt) |
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 GB / 128 GB | Bis zu 8.000 | Bis zu 1 TB | 5.000 |
32 GB / 256 GB | Bis zu 14.000 | Bis zu 3 TB | 5.000 |
64 GB / 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 GB / 864 GB | Größer als 20.000 | Bis zu 32 TB | 5.000 |
Bereitstellungstypen
Je nach Arbeitslast können Sie AlloyDB for PostgreSQL nur als primäre Instanz oder als primäre Instanz mit Lesepoolinstanz bereitstellen.
Nur primär
Wählen Sie die primäre Bereitstellung nur für die folgenden Arbeitslasten aus:
- Schreiblastig mit wenigen bis mittleren Lesevorgängen
- Leseintensive Abfragen mit wenigen Schreibvorgängen
- Typische OLTP-Lese-/Schreibvorgänge (60–70% Lese- und 30–40% Schreibvorgänge).
Weitere Informationen zu Maschinentypen finden Sie unter Allgemeine Richtlinie zur Maschinengröße.
Primär mit Lesepoolinstanz
Wenn Sie eine primäre Instanz mit Lesepoolinstanz bereitstellen möchten, sollten Sie Folgendes beachten:
- Wenn Sie latenzabhängige Lesevorgänge haben, sollten Sie Ihre Leseanfragen auf Lesepoolinstanzen auslagern. Sie können bis zu 20 Knoten für alle Lesepoolinstanzen konfigurieren. Weitere Informationen finden Sie unter Lesepoolinstanz erstellen.
- Konfigurieren Sie mehrere Lesepoolinstanzen, wenn Sie mehr als eine Datenbank haben, z. B. CRM oder Finanzen in derselben Instanz. Diese Strategie trägt zu einem effektiven Caching und einer guten Abfrageleistung bei.
- Sie können die Größe Ihrer primären Instanz und Ihrer Lesepoolinstanzen je nach Bedarf 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 Hochverfügbarkeit mehr als einen Knoten pro Lesepoolinstanz hinzu.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepoolinstanzen, um die Leistung von Leseanfragen zu verbessern. Dazu muss die Spalten-Engine nicht auf der primären Instanz aktiviert werden.
Verwenden Sie integrierte Funktionen wie den Indexberater, um Indexe hinzuzufügen, die die Abfrageleistung verbessern können.
OLAP-Arbeitslasten
Für OLAP-Arbeitslasten ist der primäre Messwert für die Größenanpassung die Abfrageleistung, insbesondere bei Abfragen, die vollständige Tabellenscans oder Aggregationen erfordern. AlloyDB for PostgreSQL enthält ein integriertes spaltenorientiertes Modul, das analytische Abfragen beschleunigt. Wenn Sie die spaltenbasierte Engine standardmäßig aktivieren, werden 30% des Arbeitsspeichers belegt und automatisch ultraschnelle Cache-Daten verwendet.
Weitere Informationen zum Messen der OLAP-Leistung mit AlloyDB for PostgreSQL mithilfe der TPC-H-Arbeitslast finden Sie im Leitfaden zum OLAP-Benchmarking für AlloyDB for PostgreSQL.
Bereitstellungstypen
Je nach Arbeitslast können Sie AlloyDB for PostgreSQL nur als primäre Instanz oder als primäre Instanz mit Lesepoolinstanz bereitstellen.
Nur primär
Wenn Sie eine Instanz nur für primäre Nutzer bereitstellen, sollten Sie Folgendes beachten:
- Verwenden Sie diese Bereitstellung sowohl für Transaktionen als auch für Analyseabfragen (HTAP).
- Aktivieren Sie die spaltenbasierte Engine, um OLAP-Abfragen zu optimieren.
- Sie sollten eine Maschine mit 16 vCPUs oder mehr bereitstellen, die mehr Arbeitsspeicher zum Speichern von spaltenorientierten Daten bietet.
Primär mit Lesepool
Wenn Sie eine primäre Instanz mit Lesepoolinstanz bereitstellen, sollten Sie Folgendes beachten:
- Wenn Sie viele Schreibvorgänge und latenzabhängige analytische Lesevorgänge mit geringen Anforderungen an die Verzögerung haben, stellen Sie die primäre Instanz mit aktivierter Hochverfügbarkeit und mit Lesepoolinstanzen bereit.
- Aktivieren Sie die spaltenbasierte 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 einem effektiven Caching und einer guten Abfrageleistung bei.
- Sie können die Größe Ihrer primären Instanz und Ihrer Lesepoolinstanzen je nach Bedarf 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 Hochverfügbarkeit mehr als einen Knoten pro Lesepoolinstanz hinzu.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepoolinstanzen, um die Leistung von Leseanfragen zu verbessern. Dazu muss die Spalten-Engine nicht auf der primären Instanz aktiviert werden.
Nächste Schritte
- Best Practices zur Verbesserung von Leistung und Verfügbarkeit
- AlloyDB for PostgreSQL for PostgreSQL OLTP Benchmarking Guide.
- AlloyDB for PostgreSQL for PostgreSQL OLAP Benchmarking Guide.