Best practice per migliorare le prestazioni e la disponibilità di AlloyDB

Questa pagina introduce le best practice generali per aiutarti a migliorare le prestazioni, la durabilità e la disponibilità di AlloyDB per PostgreSQL. Questa pagina è rivolta agli amministratori di database e agli sviluppatori che hanno già familiarità con AlloyDB e PostgreSQL.

Configurazione e amministrazione delle istanze

Utilizzare gli strumenti AlloyDB per monitorare l'utilizzo e lo stato del database

Utilizza la seguente tabella per scoprire gli strumenti AlloyDB che ti aiutano a monitorare l'utilizzo, lo stato e le prestazioni del tuo database.

Strumento AlloyDB Descrizione
Report snapshot delle prestazioni Confronta gli snapshot delle metriche di sistema tra due diversi punti nel tempo.
Query Insights Ti aiuta a rilevare, diagnosticare e prevenire i problemi di prestazioni delle query per i database AlloyDB. Fornisce monitoraggio intuitivo e self-service e informazioni diagnostiche che non si limitano al rilevamento per aiutarti a identificare la causa principale dei problemi di prestazioni.
Statistiche di sistema Consente di monitorare le risorse e le metriche del database, tra cui il conteggio dei nodi attivi, l'utilizzo della CPU, i picchi di connessioni, gli errori di log, le transazioni al secondo e il ritardo di replica massimo.

Segui le linee guida operative

Per assicurarti che le tue istanze siano coperte dall'SLA di AlloyDB per PostgreSQL, segui le linee guida operative.

Configura un periodo di manutenzione per l'istanza principale

Configura un periodo di manutenzione per l'istanza principale per pianificare quando possono verificarsi aggiornamenti che causano interruzioni. Per saperne di più, consulta Visualizzare e impostare gli orari di manutenzione.

Aggiungi istanze del pool di lettura per scaricare il traffico di lettura

Per i workload di lettura impegnativi, aggiungi istanze del pool di lettura per trasferire il traffico di lettura dall'istanza principale.

Configura uno o più pool di lettura per ogni database nell'istanza per migliorare la memorizzazione nella cache.

Valuta la possibilità di aggiungere nodi aggiuntivi per pool per facilitare il bilanciamento del carico automatico e l'alta disponibilità.

Gestire il ritardo della replica

AlloyDB ha apportato diversi miglioramenti per ridurre il ritardo di replica. Tuttavia, potresti riscontrare scenari in cui la riproduzione dei log è bloccata o non riesce a tenere il passo, il che può causare un aumento del ritardo di replica.

Per informazioni dettagliate su come monitorare e risolvere i problemi di ritardo della replica, vedi Risolvere i problemi di replica.

Non avviare un'operazione amministrativa prima del completamento di quella precedente

Le istanze AlloyDB non possono accettare nuove richieste di operazioni finché non viene completata l'operazione precedente. Se tenti di avviare una nuova operazione prima che la precedente venga completata, la richiesta di operazione non va a buon fine. Ciò include i riavvii delle istanze.

Lo stato dell'istanza nella console Google Cloud non riflette se un'operazione è in esecuzione. Il segno di spunta verde indica solo se l'istanza si trova nello stato RUNNABLE. Per verificare se un'operazione è in esecuzione, fai clic su Operazioni nel riquadro di navigazione a sinistra e controlla lo stato dell'operazione più recente.

Configura una quota di spazio di archiviazione sufficiente per la manutenzione critica del database

Per impostazione predefinita, puoi utilizzare uno spazio di archiviazione fino a 16 TB per cluster. Se hai bisogno di più spazio di archiviazione, valuta la possibilità di aumentare la quota di spazio di archiviazione.

Evitare l'utilizzo eccessivo della CPU

Puoi visualizzare la percentuale di CPU disponibile utilizzata dall'istanza nella pagina dei dettagli dell'istanza nella console Google Cloud . Per saperne di più, consulta Monitorare le istanze. Puoi anche monitorare l'utilizzo della CPU e ricevere avvisi a una soglia specificata utilizzando Crea policy di avviso basate su soglie metriche.

Per evitare un utilizzo eccessivo, puoi scalare l'istanza a un numero maggiore di CPU. La modifica delle CPU richiede il riavvio dell'istanza. Se la tua istanza ha già il numero massimo di CPU, ti consigliamo di partizionare il database in più istanze.

Evitare l'esaurimento della memoria

AlloyDB dispone di una gestione automatica della memoria per evitare problemi di memoria insufficiente. Tuttavia, una pressione costante sulla memoria potrebbe causare problemi di prestazioni. Quando cerchi segni di esaurimento della memoria, devi utilizzare principalmente la metrica memoria disponibile. Per un rendimento ottimale, ti consigliamo di mantenere questa metrica al di sopra del 10%.

A partire da PostgreSQL 17, la metrica della memoria disponibile tiene conto in modo più preciso della memoria della cache di pagine del sistema operativo non liberabile. Gli utenti che eseguono l'upgrade a PostgreSQL 17 potrebbero notare una riduzione della memoria disponibile segnalata a causa di questo calcolo migliorato.

Se la tua istanza mostra una pressione della memoria, valuta la possibilità di scalare l'istanza o di attivare il pool di connessioni gestito. AlloyDB supporta fino a 2304 GB di RAM utilizzando la serie di macchine C4. Per i carichi di lavoro con molte connessioni inattive o di breve durata, il pool di connessioni gestito può ridurre significativamente l'impronta di memoria richiesta per l'overhead di connessione.

Per saperne di più sul monitoraggio delle metriche di memoria nella console Google Cloud , consulta Monitorare le istanze.

Assicurati che la tua istanza abbia ID transazione ottimali

Puoi visualizzare l'utilizzo dell'ID transazione della tua istanza nella pagina Esplora metriche della console Google Cloud impostando Resource Type su AlloyDB for PostgreSQL Database e Metric su Percentage of instance's transaction IDs consumed. Per ulteriori informazioni, consulta Crea grafici con Esplora metriche.

AlloyDB dispone di autovacuum adattivo integrato che aiuta a mitigare i problemi correlati al vacuum.

Architettura dei dati

Suddividi le istanze di grandi dimensioni in istanze più piccole, se possibile.

Se possibile, utilizza molti cluster AlloyDB più piccoli anziché un'unica istanza di grandi dimensioni. La gestione di un'istanza monolitica di grandi dimensioni presenta sfide che non vengono create da un gruppo di istanze più piccole.

Non utilizzare troppe tabelle di database

Mantieni il numero di tabelle dell'istanza inferiore a 10.000. Un numero eccessivo di tabelle del database può influire sul tempo di upgrade del database.

Prestazioni delle query

Abilita il motore colonnare se esegui query analitiche

Leggi una panoramica del motore colonnare AlloyDB. Controlla i tipi di query che traggono vantaggio dall'attivazione del motore colonnare.

Puoi monitorare l'utilizzo del motore colonnare.

Se non hai mai utilizzato il motore columnare, inizia a familiarizzare con la columnizzazione automatica. Dopodiché, puoi scegliere di gestire le colonne manualmente.

Aumenta le dimensioni dell'istanza per migliorare le prestazioni delle query

Se riscontri un rendimento basso delle query, valuta la possibilità di scalare l'istanza.

Ogni SKU ha configurazioni di vCPU e memoria limitate e anche una cache veloce limitata. Se le dimensioni dei dati sono grandi e se riscontri un rendimento delle query scarso, valuta la possibilità di eseguire lo scale up a un'istanza più grande.

Esegui il deployment dei pool di lettura e scarica le query di lettura nel pool di lettura

Se la tua applicazione esegue molte operazioni di scrittura e lettura, valuta la possibilità di eseguire il deployment di pool di lettura e di scaricare le query di lettura nel pool di lettura.

Per i workload di lettura impegnativi, aggiungi istanze del pool di lettura per trasferire il traffico di lettura dall'istanza principale.

Implementazione dell'applicazione

Utilizza pratiche di gestione delle connessioni efficaci

Utilizza pratiche di gestione delle connessioni efficaci, come il pooling delle connessioni e il backoff esponenziale.

L'utilizzo di tecniche di gestione delle connessioni efficaci migliora l'utilizzo delle risorse da parte dell'applicazione e ti aiuta a rispettare i limiti di connessione di AlloyDB.

Testa la risposta della tua applicazione agli aggiornamenti di manutenzione

Testa la risposta della tua applicazione agli aggiornamenti di manutenzione, che possono verificarsi in qualsiasi momento durante il periodo di manutenzione.

Puoi simulare un aggiornamento di manutenzione eseguendo operazioni di scalabilità di Compute o aggiornando i flag statici di PostgreSQL, il che attiva la manutenzione con tempi di inattività ridotti (LDTM).

Durante LDTM, l'istanza non è disponibile per un breve periodo e le connessioni esistenti vengono interrotte. Il test di LDTM ti consente di comprendere meglio il modo in cui la tua applicazione gestisce la manutenzione pianificata e la velocità con cui il sistema può ripristinarsi.

Testare la risposta dell'applicazione ai failover

Testa la risposta dell'applicazione ai failover, che possono verificarsi in qualsiasi momento.

Puoi avviare manualmente un failover utilizzando la console Google Cloud , Google Cloud CLI o l'API. Per ulteriori informazioni, consulta Avvio del failover.

Evitare transazioni di grandi dimensioni

Mantieni le transazioni brevi e di piccole dimensioni. Se è necessario un aggiornamento di un database di grandi dimensioni, esegui l'aggiornamento in diverse transazioni più piccole anziché eseguirne una di grandi dimensioni.

Evitare un numero elevato di sotto-transazioni

Evita un numero elevato di sotto-transazioni in una transazione quando sono presenti transazioni a esecuzione prolungata.

In AlloyDB, l'esecuzione di una transazione in un blocco di errori PL/pgSQL crea le sottotransazioni della transazione corrispondenti al blocco di errori. Le prestazioni complessive del sistema peggiorano se il numero di sottotransazioni supera 64 in presenza di transazioni a esecuzione prolungata.

Utilizzare la versione più recente del proxy di autenticazione

Se utilizzi il proxy di autenticazione AlloyDB, assicurati di utilizzare la versione più recente. Per saperne di più, vedi Mantieni aggiornato il client proxy di autenticazione.

Importazione ed esportazione di dati

Ripristinare dai backup di Cloud SQL per PostgreSQL per la migrazione

Per facilitare la migrazione, consulta Eseguire la migrazione da Cloud SQL per PostgreSQL ad AlloyDB.

Per scoprire come eseguire la migrazione dei dati da Cloud SQL per PostgreSQL ad AlloyDB utilizzando la replica continua dei dati, consulta Database Migration Service per PostgreSQL ad AlloyDB.

Accelerare le importazioni per le istanze di piccole dimensioni

Quando importi set di dati di grandi dimensioni per istanze piccole, puoi aumentare temporaneamente la CPU e la RAM di un'istanza per migliorare le prestazioni.

Backup e ripristino

Proteggere i dati utilizzando le funzionalità AlloyDB appropriate

Utilizza backup, recupero point-in-time (PITR) ed esportazioni per ridondanza e protezione. Ognuna protegge da scenari diversi e si completano a vicenda in una solida strategia di protezione dei dati.

I backup sono leggeri e consentono di ripristinare i dati dell'istanza allo stato in cui si trovavano al momento del backup. Tuttavia, la funzionalità di backup di AlloyDB presenta alcune limitazioni. Se elimini l'istanza, vengono eliminati anche i backup. Non puoi eseguire il backup di un singolo database o di una singola tabella. Se la regione in cui si trova l'istanza non è disponibile, non puoi ripristinarla da quel backup, nemmeno in una regione disponibile.

Il recupero point-in-time ti aiuta a recuperare un'istanza in un momento specifico. Ad esempio, se un errore causa una perdita di dati, puoi ripristinare un database nello stato in cui si trovava prima che si verificasse l'errore. Un recupero point-in-time crea sempre una nuova istanza; non puoi eseguire un recupero point-in-time su un'istanza esistente.

La creazione delle esportazioni richiede più tempo perché in Cloud Storage viene creato un file esterno che può essere utilizzato per ricreare i dati. Le esportazioni non sono interessate se elimini l'istanza. Inoltre, puoi esportare solo un singolo database o tabella, a seconda del formato di esportazione.

Proteggere l'istanza e i backup da eliminazioni accidentali

Per attivare la prevenzione dell'eliminazione accidentale predefinita, crea un'istanza AlloyDB utilizzando la console Google Cloud o Terraform.

Utilizza la funzionalità di esportazione di AlloyDB per esportare i dati per una protezione aggiuntiva. Utilizza Cloud Scheduler con l'API Cloud Scheduler per automatizzare la gestione delle esportazioni.

Per scenari più avanzati, utilizza Cloud Scheduler con le funzioni Cloud Run per l'automazione.