Mind Dump, Tech And Life Blog
written by Ivan Alenko
published under license Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)copy! share!
posted in category Systems Software / Postgres
posted at 28. Jun '20

Optimizing PostgreSQL Performance

Optimizing the performance of PostgreSQL database server, also known as Postgres.

Basically:

  • read the theory behind on Heroku: https://devcenter.heroku.com/articles/concurrency-and-database-connections
  • generate optimized configuration: https://pgtune.leopard.in.ua/

In short: Postgres relies on page caching of operating system (Linux). Assign 25% of available memory to Postgres itself and 75% to cache.

An example for Postgres 12:

# DB Version: 12
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 4 GB
# CPUs num: 4
# Connections num: 400
# Data Storage: ssd

max_connections = 400
shared_buffers = 1GB
effective_cache_size = 3GB
maintenance_work_mem = 256MB
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 1310kB
min_wal_size = 1GB
max_wal_size = 4GB
max_worker_processes = 4
max_parallel_workers_per_gather = 2
max_parallel_workers = 4
max_parallel_maintenance_workers = 2

Add Comment