The default out-of-the-box configuration of PostgreSQL server is really not compliant for high end (or normal) servers. It uses a really small amount of memory.
The location of the PostgreSQL server configuration file is usually:
/etc/postgresql/9.x/main/postgresql.conf
On a SuSE system:
/var/lib/pgsql/data/postgresql.conf
# # Amount of System V shared memory # -------------------------------- # # A reasonable starting value for shared_buffers is 1/4 of the memory in your # system: shared_buffers = 1GB # You may need to set the proper amount of shared memory on the system. # # $ sysctl -w kernel.shmmax=1073741824 # # Reference: # http://www.postgresql.org/docs/8.4/interactive/kernel-resources.html#SYSVIPC # # Memory for complex operations # ----------------------------- # # Complex query: work_mem = 24MB max_stack_depth = 4MB # Complex maintenance: index, vacuum: maintenance_work_mem = 240MB # Write ahead log # --------------- # # Size of the write ahead log: wal_buffers = 4MB # Query planner # ------------- # # Gives hint to the query planner about the size of disk cache. # # Setting effective_cache_size to 1/2 of total memory would be a normal # conservative setting: effective_cache_size = 1024MB