Ottimizzare il motore colonnare per AlloyDB per PostgreSQL

Puoi ottimizzare il motore colonnare AlloyDB per velocizzare i job di compilazione e aggiornamento delle colonne in background nello spazio di archiviazione a colonne e per controllare quando viene eseguita l'auto-colonnarizzazione. Le impostazioni riguardano la CPU e i worker di manutenzione, la pianificazione dell'auto-colonnarizzazione e le dimensioni dell'heap di popolazione delle colonne.

Regola le risorse della CPU per le attività di manutenzione

L'esempio seguente mostra come configurare il motore colonnare in modo che utilizzi il 50% dei core della CPU:

google_job_scheduler.maintenance_cpu_percentage = 50

Il motore colonnare utilizza fino al 20% dei core della CPU per i job di manutenzione in background, come la compilazione, l'aggiornamento e i suggerimenti. Per regolare le risorse della CPU per le attività di manutenzione, imposta il flag google_job_scheduler.maintenance_cpu_percentage su un valore compreso tra 0 e 100. Il valore predefinito è 20. Se imposti questo flag su 0, i job di manutenzione in background vengono disattivati. Per i valori diversi da zero, l'utilizzo minimo della CPU per le attività di manutenzione in background è di 1 vCPU.

Aggiungi worker per accelerare la manutenzione delle colonne

L'esempio seguente mostra come impostare quattro processi worker:

google_job_scheduler.max_parallel_workers_per_job = 4

Il motore colonnare utilizza fino a due processi worker per i job in background di compilazione e aggiornamento. Per aumentare la velocità di queste operazioni, imposta il seguente flag per aumentare il numero di processi worker per i job in background. L'impostazione predefinita è 2 processi worker. Questi processi vengono eseguiti su risorse CPU limitate, come specificato nel flag google_job_scheduler.maintenance_cpu_percentage. Questo flag non richiede il riavvio del database.

Modifica la pianificazione dell'auto-colonnarizzazione

L'esempio seguente mostra come impostare la pianificazione dell'auto-colonnarizzazione su sei ore:

google_columnar_engine.auto_columnarization_schedule = 'EVERY 6 HOURS'

La pianificazione dell'auto-colonnarizzazione può essere impostata nel flag google_columnar_engine.auto_columnarization_schedule in base ai workload previsti con un'elevata intensità di scansione. Specifica una o più ore per questo flag. La modifica del valore di questo flag non richiede il riavvio del database.

Compila manualmente il motore colonnare

L'esempio seguente mostra come compilare manualmente il motore colonnare:

google_columnar_engine.enable_auto_columnarization = OFF

Se preferisci compilare manualmente il motore colonnare, imposta il flag google_columnar_engine.enable_auto_columnarization su OFF. Il valore predefinito di questo flag è ON. La modifica del valore di questo flag non richiede il riavvio del database. Per saperne di più, consulta Gestisci manualmente i contenuti dell'archivio di colonne.

Ottimizzazione delle dimensioni dell'heap di popolazione del motore colonnare

L'esempio seguente mostra come configurare il flag google_columnar_engine.population_heap_size_in_mb:

google_columnar_engine.population_heap_size_in_mb = 250

Per convertire i dati in formato colonnare, il motore colonnare alloca la quantità di memoria in megabyte specificata dal flag google_columnar_engine.population_heap_size_in_mb. Una volta completata la conversione, questa memoria viene deallocata immediatamente, in genere entro pochi secondi.

I valori consigliati per l'impostazione google_columnar_engine.population_heap_size_in_mb vanno da un minimo di 200 MB a un massimo di 1000 MB. Tuttavia, i valori consentiti per il flag sono compresi tra 0 e 2147483647 MB.

Il valore predefinito di 250 MB per il flag google_columnar_engine.population_heap_size_in_mb funziona bene per la maggior parte degli utilizzi tipici del database. Tuttavia, potresti trovarti in situazioni in cui devi aumentare questo valore.