Um Durchsatz, Latenz und Hochverfügbarkeit für Ihre AlloyDB for PostgreSQL-Arbeitslasten zu optimieren, können Sie die Größe Ihrer primären und Lesepoolinstanzen für OLTP- (Online Transaction Processing), OLAP- (Online Analytical Processing) und HTAP-Arbeitslasten (Hybrid Transactional and Analytical Processing) anpassen und bereitstellen.
Übersicht
AlloyDB for PostgreSQL bietet die folgenden integrierten Funktionen, mit denen Sie eine bessere Datenbankleistung erzielen 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äre Instanz und ohne Ausfallzeit für die Lesepoolknoten während Skalierungsvorgängen
Zur Leistungsoptimierung Ihrer AlloyDB for PostgreSQL-Instanz gehört die Verwaltung der folgenden Elemente:
- Primäre und Lesepoolinstanzen richtig dimensionieren
- Flags aktualisieren, 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 bestimmen:
- Arbeitslasttyp: OLTP, OLAP oder HTAP
- Leistungsanforderungen: Latenz- und Durchsatzanforderungen
- 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 verteilten Architektur im Cloud-Maßstab mit disaggregierter Rechenleistung und Speicher bereitgestellt. Schreibvorgänge werden bestätigt, sobald die WAL-Dateien (Write-Ahead-Logs) im regionalen Speicher beibehalten werden, während die Blockmaterialisierung in den Speicher ausgelagert wird.
Bei der mehrstufigen Cache-Architektur werden Daten automatisch zwischen dem Puffer-Cache, dem ultraschnellen Cache und der intelligenten Speicher-Engine platziert. Aufgrund dieser mehrstufigen Cache-Architektur, die in AlloyDB for PostgreSQL verwendet wird, sind die 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 sinnvollen Vergleich ermöglichen, um die Datenmenge zu verstehen, die von AlloyDB for PostgreSQL verarbeitet werden kann.
Der primäre Messwert für die Größenanpassung ist TPS. So schätzen Sie die erforderliche AlloyDB for PostgreSQL-Größe:
- Identifizieren Sie Ihre vorhandene Arbeitslast. Wenn Sie von einer 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 bestimmen Sie deren Leistungsanforderungen.
- Verwenden Sie ein Tool wie
HammerDBoderpgbench. Mit diesen Tools können Sie AlloyDB for PostgreSQL testen und feststellen, ob die Maschinengröße Ihren TPS-Anforderungen entspricht. - Verwenden Sie den AlloyDB for PostgreSQL OLTP Benchmarking Guide. 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 AlloyDB for PostgreSQL-Größe aus. Berücksichtigen Sie die aktuelle Datengröße und die Erwartungen an das zukünftige Wachstum.
Richtlinien für die Maschinengröße
Die folgende Beispieltabelle enthält Empfehlungen für Daten mit TPC-C-Benchmarking, die ein Lese-/Schreibverhältnis von etwa 65% Lesevorgängen und 35% Schreibvorgängen haben. Bei der Dimensionierung einer AlloyDB for PostgreSQL-Instanz sollten Sie eine CPU-Auslastung im stabilen Zustand von etwa 60–70% anstreben, um den Planungsaufwand des Betriebssystems zu vermeiden. So bleibt ein gewisser Spielraum für Spitzen bei der Ressourcennutzung durch Clientanwendungen.
Verwenden Sie die Größenempfehlungen in der folgenden Tabelle als allgemeine Richtlinien.
Informationen zur maximal empfohlenen Anzahl von max_connections für jede Maschinengröße finden Sie unter Maximale Anzahl gleichzeitiger Verbindungen.
| vCPU/Speicher | Empfohlener Bereich für Transaktionen/Sek. (30% im Cache) |
Empfohlene Größe der Arbeitsdaten von (bis zu 128 TB Gesamtgröße) |
|---|---|---|
| 2 / 16 GB | Bis zu 1.000 | Bis zu 100 GB |
| 4 GB / 32 GB | Bis zu 2.500 | Bis zu 250 GB |
| 8/ 64 GB | Bis zu 4.000 | Bis zu 500 GB |
| 16 / 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 / 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 für die folgenden Arbeitslasten die Bereitstellung nur für die primäre Instanz aus:
- Schreibintensiv mit wenigen bis mittleren Lesevorgängen
- 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 zur Maschinengröße.
Primäre Instanz mit Lesepoolinstanz
Wenn Sie eine primäre Instanz mit Lesepoolinstanz bereitstellen möchten, beachten Sie Folgendes:
- Wenn Sie latenzempfindliche Lesevorgänge haben, sollten Sie Ihre Leseabfragen 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 ermöglicht effektives Caching und eine gute Abfrageleistung.
- 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 pro Lesepoolinstanz mehr als einen Knoten hinzu, um Hochverfügbarkeit zu erreichen.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepoolinstanzen, um die Leistung von Leseabfragen zu verbessern. Dazu muss die spaltenbasierte Engine nicht auf der primären Instanz aktiviert werden.
OLAP-Arbeitslasten
Bei 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 eine integrierte spaltenbasierte Engine, mit der analytische Abfragen beschleunigt werden können. Wenn Sie die spaltenbasierte Engine aktivieren, werden standardmäßig 30% des Arbeitsspeichers verbraucht 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 AlloyDB for PostgreSQL-Leitfaden zum OLAP-Benchmarking.
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 mit primärer Instanz 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 einer Lesepoolinstanz bereitstellen, beachten Sie Folgendes:
- Wenn Sie viele Schreibvorgänge und auch latenzempfindliche analytische Lesevorgänge mit geringen Verzögerungsanforderungen 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 ermöglicht effektives Caching und eine gute Abfrageleistung.
- 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 mehr als einen Knoten pro Lesepoolinstanz hinzu, um Hochverfügbarkeit zu erreichen.
- Aktivieren Sie die spaltenbasierte Engine selektiv in bestimmten Lesepoolinstanzen, um die Leistung von Leseabfragen zu verbessern. Dazu muss die spaltenbasierte Engine nicht auf der primären Instanz aktiviert werden.
Nächste Schritte
- Best Practices zur Verbesserung von Leistung und Verfügbarkeit
- AlloyDB for PostgreSQL für PostgreSQL OLTP-Benchmarking-Leitfaden.
- AlloyDB for PostgreSQL für PostgreSQL OLAP-Benchmarking-Leitfaden.