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.

Optimization using graphical interface ProlineAdmin GUI

Launch ProlineAdmin GUI

Windows users

A shortcut “Proline Admin” is available in the Windows Start Menu, under the Proline folder.

Linux users or manual installation

Execute the start.sh script located in the folder obtained after Proline Admin GUI archive file extraction.

ProlineAdmin GUI usage

The first step is to select your PostgreSQL instance data directory using the dedicated menu:

You can then edit two major files in PostgreSQL configuration:

Edit connections : pg_hba.conf

The pg_hba.conf file lists the IP addresses that are allowed to connect to your databases. You will often have to edit this file to first set up Proline. For example, you may have to allow your own machine to establish connection, or a set of machines working together…

Click 'Edit pg_hba.conf' to easily edit this file.

The icon near the 'Database' field opens a window to help you design the database name. As shown in the screenshot above, keeping the mouse over a column name for a few seconds will display a tooltip to help you understand how to create a new connection.

Note: for advanced users, there is more documentation inside the pg_hba.conf file (located in the PostgreSQL data directory).

Optimize PostgreSQL performances for Proline : postgresql.conf

Click 'Edit postgresl.conf' to easily edit this file. The easiest way to use it is to simply click on 'Set all to optimized value', then 'Apply'.

Each line corresponds to a tuneable parameter. If the first box of the line isn't checked, then it will be commented in the configuration file (not taken into account). You can use either the sliders or the fields and boxes to change the values. Keeping the mouse over a parameter name for a few seconds will display a tooltip to help you understand what is this parameter about.

As you can see, at the top of the modal window stand 2 buttons:

  • 'Set all to optimized value': compute, for each parameter, the most appropriate value, given your machine properties and the application (Proline's usage);
  • 'Set all to default value': set default value (compute it if needed) for each parameter.

Most useful tuneable parameters in postgresql.conf

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.1437995013.txt.gz · Last modified: 2015/07/27 13:03 by 193.48.0.3