In diesem Dokument finden Sie Empfehlungen für Arbeitslasten und Bereitstellungen zum Dimensionieren von AlloyDB for PostgreSQL-Instanzen für Arbeitslasten für die Online-Transaktionsverarbeitung (OLTP) und die analytische Onlineverarbeitung (OLAP).
Übersicht
AlloyDB for PostgreSQL bietet die folgenden integrierten Funktionen, mit denen Sie die Datenbankleistung verbessern können:
- Automatische Speicherverwaltung
- Adaptives Autovacuum
- Optimierte integrierte Leistungseinstellungen
- Geringe Replikationsverzögerung
- Wartung ohne Unterbrechungen mit einer Ausfallzeit von unter einer Sekunde für die primären Knoten und ohne Ausfallzeit 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 Lesepool-Instanzen 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 Cachearchitektur 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 legen Sie die Leistungsanforderungen fest.
- Verwenden Sie ein Tool wie
HammerDBoderpgbench. Mit diesen Tools können Sie AlloyDB for PostgreSQL benchmarken und feststellen, ob die Maschinengröße Ihren TPS-Anforderungen entspricht. - Leitfaden für OLTP-Benchmarking für AlloyDB for PostgreSQL verwenden In diesem Leitfaden 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 Datengröße und die erwartete zukünftige Entwicklung.
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% Lesen und 35% Schreiben beträgt. Bei der Dimensionierung einer AlloyDB for PostgreSQL-Instanz sollten Sie eine Steady-State-CPU-Auslastung von etwa 60–70% anstreben, um den Planungsaufwand des Betriebssystems zu vermeiden. So bleibt etwas Spielraum für Spitzen bei der Ressourcennutzung durch Clientanwendungen.
Verwenden Sie die Größenempfehlungen in der folgenden Tabelle als allgemeine Richtlinien.
Die maximal empfohlene max_connections für jede Maschinengröße finden Sie unter Maximale Anzahl gleichzeitiger Verbindungen.
| vCPU/Mem | Empfohlene Transaktionen/Sek. Bereich (30% im Cache) |
Empfohlene Größe der Arbeitsdaten (bis zu 128 TB insgesamt) |
|---|---|---|
| 2 / 16 GB | Bis zu 1.000 | Bis zu 100 GB |
| 4 / 32 GB | Bis zu 2.500 | Bis zu 250 GB |
| 8/ 64 GB | Bis zu 4.000 | Bis zu 500 GB |
| 16 GB / 128 GB | Bis zu 8.000 | Bis zu 1 TB |
| 32 / 256 GB | Bis zu 14.000 | Bis zu 3 TB |
| 64 GB / 512 GB | Bis zu 20.000 | Bis zu 8 TB |
| 96 GB / 768 GB | Bis zu 25.000 | Bis zu 16 TB |
| 128 GB / 864 GB | Größer als 20.000 | Bis zu 32 TB |
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:
- Hohe Schreiblast mit niedriger bis mittlerer Leselast
- Leseintensive Abfragen mit wenigen Schreibvorgängen
- Typische OLTP-Lese-/Schreibvorgänge (60–70% Lese-, 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 latenzempfindliche 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 Leseabfragen zu verbessern. Dafür muss die spaltenbasierte Engine nicht für die primäre 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 Dimensionierung die Abfrageleistung, insbesondere bei Abfragen, die vollständige Tabellenscans oder Aggregationen erfordern. AlloyDB for PostgreSQL enthält eine integrierte spaltenorientierte Engine, die 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 mit der TPC-H-Arbeitslast finden Sie im AlloyDB for PostgreSQL OLAP Benchmarking Guide.
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 Geräte bereitstellen, beachten Sie Folgendes:
- Verwenden Sie diese Bereitstellung für Transaktionen mit analytischen Abfragen (HTAP).
- Aktivieren Sie die spaltenbasierte Engine, um OLAP-Abfragen zu unterstützen.
- Erwägen Sie die Bereitstellung mit einer Maschine mit 16 vCPUs oder mehr, die mehr Arbeitsspeicher zum Speichern von spaltenbasierten 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 latenzempfindliche 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 Analyseabfragen 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 Leseabfragen zu verbessern. Dafür muss die spaltenbasierte Engine nicht für die primäre 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.