Suggerimenti per il dimensionamento e l'implementazione

Questo documento fornisce consigli su workload e deployment per il dimensionamento delle istanze AlloyDB per PostgreSQL per i carichi di lavoro di elaborazione delle transazioni online (OLTP) e di elaborazione analitica online (OLAP).

Panoramica

Per aiutarti a ottenere prestazioni migliori del database, AlloyDB per PostgreSQL fornisce le seguenti funzionalità integrate:

  • Gestione automatica della memoria
  • Aspirazione automatica adattiva
  • Impostazioni delle prestazioni integrate ottimizzate
  • Ritardo della replica basso
  • Manutenzione senza interruzioni con tempi di inattività inferiori a un secondo per i nodi primari e nessun tempo di inattività per i nodi del pool di lettura durante le operazioni di scalabilità

L'ottimizzazione dell'istanza AlloyDB per PostgreSQL per le prestazioni include la gestione di quanto segue:

  • Dimensionamento corretto delle istanze principali e del pool di lettura
  • Aggiornamento dei flag che influiscono sul rendimento

Considerazioni sul dimensionamento

Prima di dimensionare l'istanza AlloyDB per PostgreSQL, determina quanto segue:

  • Tipo di workload:OLTP, OLAP o HTAP
  • Requisiti di rendimento:requisiti di latenza e velocità effettiva
  • Dimensioni previste dei dati:le dimensioni dei dati che prevedi di archiviare in AlloyDB per PostgreSQL e le dimensioni del set di dati attivo
  • Scala del carico di lavoro:un aumento o una crescita delle dimensioni dei dati nel tempo

Carichi di lavoro OLTP

Puoi eseguire il deployment del database AlloyDB per PostgreSQL come istanza zonale (singolo nodo) o come istanza a disponibilità elevata (due nodi in ogni zona). Se vuoi, puoi anche aggiungere istanze del pool di lettura e un cluster secondario in un'altra regione per carichi di lavoro distribuiti geograficamente o per il ripristino di emergenza.

AlloyDB per PostgreSQL viene implementato utilizzando un'architettura distribuita e scalabile sul cloud con calcolo e archiviazione disaggregati. Le scritture vengono riconosciute non appena i file di log write-ahead (WAL) vengono salvati nello spazio di archiviazione regionale, mentre la materializzazione dei blocchi viene scaricata nello spazio di archiviazione.

Allo stesso modo, con l'architettura della cache multilivello, i dati vengono posizionati automaticamente tra la cache del buffer, la cache ultraveloce e il motore di archiviazione intelligente. A causa di questa architettura di cache a più livelli utilizzata in AlloyDB per PostgreSQL, le operazioni di input e output al secondo (IOP) non sono pertinenti nel contesto di AlloyDB per PostgreSQL per il confronto con altri sistemi di database.

Tuttavia, l'utilizzo di transazioni al secondo (TPS)/transazioni al minuto (TPM) può fornire un confronto significativo per comprendere la quantità di dati che possono essere gestiti da AlloyDB per PostgreSQL.

La metrica di dimensionamento principale è TPS. Per stimare le dimensioni richieste di AlloyDB per PostgreSQL, segui questi passaggi:

  1. Identifica il tuo carico di lavoro esistente. Se esegui la migrazione da PostgreSQL autogestito o da altri database commerciali, potresti già avere il valore TPS per il tuo workload esistente.
  2. Analizza le query. Identifica le query più critiche nel tuo workload e determina i relativi requisiti di prestazioni.
  3. Utilizza uno strumento come HammerDB o pgbench. Questi strumenti consentono di eseguire il benchmark di AlloyDB per PostgreSQL e determinare se le dimensioni della macchina soddisfano i requisiti di TPS.
  4. Utilizza la Guida al benchmarking OLTP di AlloyDB per PostgreSQL. Questa guida fornisce dati sulle prestazioni per varie configurazioni di AlloyDB per PostgreSQL, per trovare una configurazione che soddisfi i tuoi requisiti di TPS.
  5. Scegli una dimensione appropriata per AlloyDB per PostgreSQL. Considera le dimensioni attuali dei dati e le aspettative di crescita future.

Linee guida per le dimensioni della macchina

La tabella di esempio seguente mostra i consigli per i dati con benchmarking TPC-C che hanno un rapporto di lettura/scrittura di circa il 65% di letture e il 35% di scritture. Quando dimensioni un'istanza AlloyDB per PostgreSQL, devi puntare a un utilizzo della CPU in stato stabile di circa il 60-70% per evitare l'overhead di pianificazione del sistema operativo. In questo modo, le applicazioni client hanno un certo margine per i picchi di utilizzo delle risorse.

vCPU/Mem Intervallo di transazioni/sec consigliato
(30% memorizzato nella cache)
Dimensioni consigliate dei dati di lavoro
(fino a 128 TB di dimensioni totali)
max_connections consigliato
2 / 16GB Fino a 1000 Fino a 100 GB 1000
4 / 32GB Fino a 2500 Fino a 250 GB 2000
8/ 64GB Fino a 4000 Fino a 500 GB 4000
16 / 128GB Fino a 8000 Fino a 1 TB 5000
32 / 256GB Fino a 14.000 Fino a 3 TB 5000
64 / 512GB Fino a 20.000 Fino a 8 TB 5000
96 / 768GB Fino a 25.000 Fino a 16 TB 5000
128 / 864GB Maggiore di 20.000 Fino a 32 TB 5000

Tipi di deployment

In base al tuo carico di lavoro, puoi eseguire il deployment di AlloyDB per PostgreSQL solo come istanza principale o come istanza principale con pool di lettura.

Solo principale

Scegli il deployment solo primario per i seguenti workload:

  • Scrittura elevata con letture basse-medie
  • Query con molte letture e poche scritture
  • Lettura/scrittura OLTP tipica (60-70% letture, 30-40% scritture).

Per ulteriori informazioni sui tipi di macchina, consulta le linee guida generali sulle dimensioni delle macchine.

Primaria con istanza del pool di lettura

Se scegli di eseguire il deployment di un'istanza principale con pool di lettura, tieni presente quanto segue:

  • Se hai letture sensibili alla latenza, valuta la possibilità di scaricare le query di lettura nelle istanze del pool di lettura. Puoi configurare fino a 20 nodi in tutte le istanze del pool di lettura. Per saperne di più, vedi Crea un'istanza del pool di lettura.
  • Configura più istanze del pool di lettura se hai più di un database, ad esempio CRM o Finanze nella stessa istanza. L'utilizzo di questa strategia contribuisce a una memorizzazione nella cache e a un rendimento delle query efficaci.
  • Puoi dimensionare le istanze del pool principale e di lettura in modo diverso in base ai tuoi requisiti. Per saperne di più sulle best practice per le istanze del pool di lettura, consulta Best practice per migliorare le prestazioni e la disponibilità di AlloyDB.
  • Aggiungi più di un nodo per istanza del pool di lettura per l'alta affidabilità.
  • Abilita selettivamente il motore colonnare in istanze specifiche del pool di lettura per migliorare il rendimento delle query di lettura. Non è necessario abilitare il motore colonnare sull'istanza primaria.

Valuta la possibilità di utilizzare funzionalità integrate come i suggerimenti sull'indicizzazione per aggiungere indici che possono migliorare il rendimento delle query.

Carichi di lavoro OLAP

Per i workload OLAP, la metrica di dimensionamento principale è il rendimento delle query, in particolare le query che richiedono scansioni complete delle tabelle o aggregazioni. AlloyDB per PostgreSQL include un motore colonnare integrato che consente di accelerare le query analitiche. L'attivazione del motore colonnare per impostazione predefinita consuma il 30% della memoria e utilizza automaticamente dati della cache ultraveloci.

Per saperne di più sulla misurazione delle prestazioni OLAP con AlloyDB per PostgreSQL utilizzando il workload TPC-H, consulta la Guida al benchmarking OLAP di AlloyDB per PostgreSQL.

Tipi di deployment

In base al tuo carico di lavoro, puoi eseguire il deployment di AlloyDB per PostgreSQL solo come istanza principale o come istanza principale con pool di lettura.

Solo principale

Se esegui il deployment di un'istanza solo primaria, tieni presente quanto segue:

  • Utilizza questo deployment sia per le transazioni con query analitiche (HTAP).
  • Abilita il motore colonnare per facilitare le query OLAP.
  • Valuta la possibilità di eseguire il deployment con una macchina con 16 vCPU o più che fornisca più memoria per archiviare i dati in formato colonnare.

Primario con pool di lettura

Se esegui il deployment di un'istanza principale con pool di lettura, tieni presente quanto segue:

  • Se hai scritture impegnative e anche letture analitiche sensibili alla latenza con requisiti di ritardo ridotti, implementa l'istanza primaria con HA abilitata e con istanze del pool di lettura.
  • Abilita il motore colonnare nelle istanze del pool di lettura in cui esegui le query analitiche.
  • Configura più istanze del pool di lettura se hai più di un database, ad esempio CRM o Finanze nella stessa istanza. L'utilizzo di questa strategia contribuisce a una memorizzazione nella cache e a un rendimento delle query efficaci.
  • Puoi dimensionare le istanze del pool principale e di lettura in modo diverso in base ai tuoi requisiti. Per saperne di più sulle best practice per le istanze del pool di lettura, consulta Best practice per migliorare le prestazioni e la disponibilità di AlloyDB.
  • Aggiungi più di un nodo per istanza del pool di lettura per l'alta affidabilità.
  • Abilita selettivamente il motore colonnare in istanze specifiche del pool di lettura per migliorare il rendimento delle query di lettura. Non è necessario abilitare il motore colonnare sull'istanza primaria.

Passaggi successivi