56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
# =============================================================================
|
|
# postgres/audit/postgresql.conf
|
|
# PostgreSQL 15 configuration for the audit database.
|
|
# Container memory limit: 1GB (lighter than FHIR store).
|
|
# Workload: INSERT-heavy (audit events), occasional SELECT (analytics).
|
|
#
|
|
# For 1GB container:
|
|
# shared_buffers = 256MB
|
|
# effective_cache_size = 768MB
|
|
# work_mem = 4MB
|
|
# maintenance_work_mem = 100MB
|
|
# =============================================================================
|
|
|
|
max_connections = 20
|
|
superuser_reserved_connections = 3
|
|
|
|
shared_buffers = 256MB
|
|
effective_cache_size = 768MB
|
|
work_mem = 4MB
|
|
maintenance_work_mem = 100MB
|
|
|
|
wal_buffers = 8MB
|
|
checkpoint_completion_target = 0.9
|
|
synchronous_commit = on
|
|
|
|
random_page_cost = 1.1
|
|
effective_io_concurrency = 200
|
|
|
|
# Logging
|
|
log_destination = stderr
|
|
logging_collector = off
|
|
log_min_messages = WARNING
|
|
log_min_error_statement = ERROR
|
|
log_min_duration_statement = 500
|
|
log_line_prefix = '%t [%p] %u@%d '
|
|
log_checkpoints = on
|
|
log_lock_waits = on
|
|
log_temp_files = 0
|
|
|
|
# Autovacuum — partitioned tables need careful autovacuum tuning.
|
|
# Each monthly partition is a separate physical table for autovacuum purposes.
|
|
autovacuum = on
|
|
autovacuum_max_workers = 3
|
|
autovacuum_naptime = 60s
|
|
|
|
timezone = 'UTC'
|
|
log_timezone = 'UTC'
|
|
|
|
lc_messages = 'en_US.UTF-8'
|
|
lc_monetary = 'en_US.UTF-8'
|
|
lc_numeric = 'en_US.UTF-8'
|
|
lc_time = 'en_US.UTF-8'
|
|
|
|
track_io_timing = on
|
|
track_counts = on
|