User Tools

Site Tools


setupguide:postgresqloptimization

This is an old revision of the document!


PostgreSQL optimization

PostgreSQL 9.1.x documentation (English): http://www.postgresql.org/docs/9.1/interactive/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY

Main configuration file is postgresql.conf located in PostgreSQL instance data directory.

Most useful tuneable parameters are (9):

Following recommended memory sizes are given for a server with 16 GiB of physical memory and about 8 GiB dedicated for the PostgreSQL instance.

  • max_connections: Number of concurrent SQL sessions (each Proline Server task can use 1 to 5 SQL sessions, each Proline-Studio instance can use some SQL sessions).

Default value 100

  • tcp_keepalives_idle: Number of seconds before sending a keepalive packet on an otherwise idle TCP connection. Help with broken router / firewall and checking for dead peers.

Default value 0 (2 hours) → 300 (5 minutes)


  • shared_buffers Use about 1/4 of physical memory dedicated to the PostgreSQL instance.

Default value 32MB → 2048MB

  • checkpoint_segments = Use (shared_buffers / 16) ; max. 64 or 256 for write-heavy bulk loading.

Default value 3 → 128

  • checkpoint_completion_target = 0.9 for high value of checkpoint_segments.

Default value 0.5 → 0.9


  • temp_buffers Per session Used for temporary tables creation.

Default value 8MB → 512MB


  • work_mem = Several per session Used for hashing, sorting and IN operator when processing queries.

Default value 1MB → 4MB to 64MB

  • maintenance_work_mem Used for intial index creation and VACUUM operations.

Default value 16MB → 1024MB


  • effective_cache_size Assumption about the effective size of the disk cache to optimize index use (Monitor physical memory allocated by system to disk cache operations).

Default value 128MB → 4096MB

setupguide/postgresqloptimization.1436535411.txt.gz · Last modified: 2015/07/10 15:36 by 132.168.72.225