Suggerimenti per il dimensionamento e l'implementazione

Questo documento fornisce consigli per il dimensionamento delle istanze AlloyDB per PostgreSQL in base al carico di lavoro, sia per l'elaborazione di transazioni online (OLTP) sia per l'elaborazione analitica online (OLAP).

Panoramica

Per aiutarti a migliorare le prestazioni del database, AlloyDB per PostgreSQL offre le seguenti funzionalità integrate:

  • Gestione automatica della memoria
  • Autopulizia adattiva
  • Impostazioni di rendimento integrate ottimizzate
  • Ritardo della replica basso
  • Manutenzione non invasiva con tempi di inattività inferiori al secondo per l'istanza principale e nessun tempo di inattività per i nodi del pool di lettura durante le operazioni di scalabilità

L'ottimizzazione dell'istanza AlloyDB per PostgreSQL in termini di 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 determinare le dimensioni dell'istanza AlloyDB per PostgreSQL, definisci quanto segue:

  • Tipo di carico di lavoro: OLTP, OLAP o HTAP
  • Requisiti di prestazioni: requisiti di latenza e throughput
  • Dimensioni dei dati previste: 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 ad alta disponibilità (due nodi in ogni zona). Se vuoi, puoi anche aggiungere istanze del pool di lettura e un cluster secondario in un'altra regione per i carichi di lavoro distribuiti geograficamente o per il ripristino di emergenza (RE).

AlloyDB per PostgreSQL viene implementato utilizzando un'architettura distribuita su larga scala cloud con calcolo e archiviazione disaggregati. Le scritture vengono confermate non appena i file dei log di scrittura anticipata (WAL) vengono mantenuti nello spazio di archiviazione regionale, mentre la materializzazione dei blocchi viene offloaded nello spazio di archiviazione.

Analogamente, con l'architettura della cache a più livelli, i dati vengono posizionati automaticamente tra la cache buffer, la cache ultraveloce e il motore di archiviazione intelligente. A causa di questa architettura della 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 può essere gestita da AlloyDB per PostgreSQL.

La metrica di dimensionamento principale è TPS. Per stimare le dimensioni di AlloyDB per PostgreSQL richieste, 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 carico di lavoro esistente.
  2. Analizza le query. Identifica le query più importanti nel tuo carico di lavoro e determina i relativi requisiti di prestazioni.
  3. Utilizza uno strumento come HammerDB o pgbench. Questi strumenti aiutano a eseguire il benchmark di AlloyDB per PostgreSQL e a determinare se le dimensioni della macchina soddisfano i requisiti TPS.
  4. Utilizza la Guida al benchmarking OLTP di AlloyDB per PostgreSQL. Questa guida fornisce dati sulle prestazioni di varie configurazioni di AlloyDB per PostgreSQL per trovare una configurazione che soddisfi i tuoi requisiti TPS.
  5. Scegli una dimensione appropriata di AlloyDB per PostgreSQL. Tieni conto delle dimensioni attuali dei dati e delle aspettative di crescita future.

Linee guida sulle dimensioni delle macchine

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 definisci le dimensioni di un'istanza AlloyDB per PostgreSQL, devi avere come obiettivo un utilizzo stabile della CPU di circa il 60-70% per evitare il sovraccarico della pianificazione del sistema operativo. Ciò consente un certo margine per gli picchi di utilizzo delle risorse da parte delle applicazioni client.

vCPU/Mem Intervallo consigliato per le transazioni/sec
(30% in cache)
Dimensioni dei dati
di lavoro consigliate (fino a 128 TB di dimensioni totali)
Valore 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 come istanza principale o come istanza principale con un'istanza del pool di lettura.

Solo principale

Scegli il deployment solo principale per i seguenti carichi di lavoro:

  • Contenuti con elevato volume di scrittura e letture medio-basse
  • Query con un elevato numero di letture e poche scritture
  • Lettura/scrittura OLTP tipica (60-70% letture, 30-40% scritture).

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

Principale con istanza del pool di lettura

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

  • Se hai letture sensibili alla latenza, valuta la possibilità di scaricare le query di lettura su istanze di pool di lettura che offrono un ritardo di replica 25 volte inferiore rispetto a PostgreSQL standard. Puoi configurare fino a 20 nodi in tutte le istanze del pool di lettura.
  • Configura più istanze del pool di lettura, se hai più di un database, ad esempio CRM o Finanza nella stessa istanza. L'utilizzo di questa strategia consente di migliorare l'efficacia della memorizzazione nella cache e le prestazioni delle query.
  • Puoi determinare le dimensioni delle istanze del pool principale e di lettura in modo diverso in base alle tue esigenze. Per ulteriori informazioni 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 garantire l'alta disponibilità.
  • Attiva l'archivio a colonne in modo selettivo in istanze del pool di lettura specifiche per le prestazioni delle query di lettura. Non è necessario attivare il motore colonnare nell'istanza principale.

Valuta la possibilità di utilizzare funzionalità integrate come i suggerimenti sull'indicizzazione per aiutarti ad aggiungere indici che possono migliorare le prestazioni delle query.

Carichi di lavoro OLAP

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

Per saperne di più sulla misurazione delle prestazioni OLAP con AlloyDB per PostgreSQL utilizzando il carico di lavoro 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 come istanza principale o come istanza principale con un'istanza del pool di lettura.

Solo principale

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

  • Utilizza questo deployment sia per le transazioni con query analitiche (HTAP) sia per le query di analisi.
  • Abilita il motore colonnare per facilitare le query OLAP.
  • Valuta la possibilità di eseguire il deployment con una macchina con almeno 16 vCPU che offra più memoria per memorizzare i dati colonnari.

Principale con pool di lettura

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

  • Se hai scrittura intensiva e anche letture analitiche sensibili alla latenza con requisiti di latenza ridotti, esegui il deployment dell'istanza principale con HA abilitato e con istanze del pool di lettura.
  • Attiva 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 Finanza nella stessa istanza. L'utilizzo di questa strategia consente di migliorare l'efficacia della memorizzazione nella cache e le prestazioni delle query.
  • Puoi determinare le dimensioni delle istanze del pool principale e di lettura in modo diverso in base alle tue esigenze. Per ulteriori informazioni 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 garantire l'alta disponibilità.
  • Attiva l'archivio a colonne in modo selettivo in istanze del pool di lettura specifiche per le prestazioni delle query di lettura. Non è necessario attivare il motore colonnare nell'istanza principale.

Passaggi successivi