User Tools

Site Tools


setupguide:postgresqloptimization

This is an old revision of the document!


PostgreSQL optmization

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 usefull tunable 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.1423127441.txt.gz · Last modified: 2015/02/05 10:10 by 193.48.0.3