Skip to content

PostgreSQL - Architettura e Configurazioni

Architettura PostgreSQL

Shared Memory

  • shared_buffers : blocchi di dati letti/scritti (tabelle, indici)
  • wal_buffers : log delle transazioni in attesa di scrittura

Memory Process

  • temp_buffers : tabelle temporanee della sessione utente
  • work_mem : sort (ORDER BY, DISTINCT) e hash (join, aggregation)
  • maintenance_work_mem : operazioni di manutenzione (VACUUM, CREATE INDEX, FK)

Processi PostgreSQL

  • Postmaster : processo principale
  • Backend Process : uno per ogni connessione client
  • WAL Writer : scrive i WAL su disco
  • WAL Sender : invia WAL ai replica (replica streaming)
  • Background Writer : svuota periodicamente i buffer
  • Checkpointer : gestisce i checkpoint
  • Autovacuum : pulisce tuple obsolete
  • Archiver : opzionale, salva WAL per backup
  • Stats Collector : raccoglie metriche di sistema
  • Logical Replication : gestisce replica logica
  • Startup Process : attivo all’avvio o recovery
  • Logger : scrive log di sistema

Physical Files

  • data_directory : dati di tabelle e indici, pagine da 8KB
  • wal_level : log transazioni per durabilità e recovery
  • archive_mode : archiviazione WAL per backup/replica
  • archive_command : comando di esecuzione per l'archiviazione del WAL
  • temp_file_limit : operazioni temporanee se memoria insufficiente

Parallelism

  • max_worker_processes : max processi worker totali (background, replica, parallelismo)
  • max_parallel_workers : max worker paralleli complessivi per il server
  • max_parallel_workers_per_gather : max worker per singola operazione parallela (Gather)

Esempio Configurazione (4 CPU, 8GB RAM)

  • shared_buffers : 2GB
  • wal_buffers : 64MB
  • work_mem : 16MB
  • maintenance_work_mem : 512MB
  • max_worker_processes : 4
  • max_parallel_workers : 4
  • max_parallel_workers_per_gather : 2