Optimizing the PostgreSQL database

Beginning with version 2015 SR2, Polarion integrates the PostgreSQL database in all new installations. After a new Polarion installation containing this database, it is highly recommended that the administrator adjust some PostgreSQL settings to optimize performance. You should make the following changes in the postgresql.conf file. The database server needs to be restarted following this configuration.

Default Linux Path: /opt/polarion/data/postgres-data/

max_connections = 80 # should be < 10 * number of CPUs

shared_buffers = 2GB # should be 10% - 15% of total system RAM

work_mem = 10MB # should be 10MB - 100MB

maintenance_work_mem = 200MB

fsync = off

synchronous_commit = off

full_page_writes = off

wal_buffers = 256kB # should be more than size of common

 # transaction

checkpoint_segments = 32

effective_cache_size = 4GB # should be approx 1/3 of total

 # system RAM

max_locks_per_transaction = 100 # specific for Polarion

# Optimal planner performance setting

# For HDD, keep default setting. Otherwise, uncomment the 

# applicable setting below:

# For SSD:

# random_page_cost = 1.5

# For SAN:

# random_page_cost = 2.0

Note:

On some Linux environments, the automatic configuration of PostgreSQL's shared_buffers parameter may calculate a value that exceeds the available shared memory configured by kernel parameter SHMMAX. In automated installations, the installer script assigns a default value of 24 MB for shared_buffers and posts the following message:

"NOTICE: Polarion attempted to change value of shared_buffers in postgresql.conf

to $v_shared_buffers_old but $v_shared_buffers_new was used instead because

of low value in /proc/sys/kernel/shmmax."

If you see this message during the installation, you are advised to review your SHMMAX configuration and adjust shared_buffers for PostgreSQL manually.