Skip site navigation (1) Skip section navigation (2)

Re: Increasing the shared memory

From: "Sorin N(dot) Ciolofan" <ciolofan(at)ics(dot)forth(dot)gr>
To: "'Shoaib Mir'" <shoaibmir(at)gmail(dot)com>
Cc: <pgsql-general(at)postgresql(dot)org>, <pgsql-admin(at)postgresql(dot)org>, "'Dimitris Kotzinos'" <kotzino(at)ics(dot)forth(dot)gr>
Subject: Re: Increasing the shared memory
Date: 2007-04-12 12:15:45
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-adminpgsql-general


                I've tried first to increase the number of shared buffers, I
doubled it, from 1000 to 2000 (16Mb)

                Unfortunately this had no effect.

                 Then I increased the number of max_locks_per_transaction
from 64 to 128 (these shoul assure about 12 800 lock slots) considering
max_connections=100 and max_prepared_transaction=5  (Quote from the manual -
The shared lock table is created to track locks on max_locks_per_transaction
* (max_connections
ml#GUC-MAX-CONNECTIONS>  + max_prepared_transactions
#GUC-MAX-PREPARED-TRANSACTIONS> ) objects (e.g. tables);)

                 I've also restarted 

                 This had also no effect. Because I can't see any difference
between the maximum input accepted for our application with the old
configuration and the maximum input accepted now, with the new
configuration. It looks like nothing happened. 





From: pgsql-admin-owner(at)postgresql(dot)org
[mailto:pgsql-admin-owner(at)postgresql(dot)org] On Behalf Of Shoaib Mir
Sent: Monday, April 02, 2007 6:02 PM
To: Sorin N. Ciolofan
Cc: pgsql-general(at)postgresql(dot)org; pgsql-admin(at)postgresql(dot)org
Subject: Re: [ADMIN] Increasing the shared memory


An extract from --> might help


As a reminder: This figure is NOT the total memory PostgreSQL has to work
with. It is the block of dedicated memory PostgreSQL uses for active
operations, and should be a minority of your total RAM on the machine, since
PostgreSQL uses the OS disk cache as well. Unfortunately, the exact amount
of shared buffers required is a complex calculation of total RAM, database
size, number of connections, and query complexity. Thus it's better to go
with some rules of thumb in allocating, and monitor the server (particuarly
pg_statio views) to determine adjustments. 
On dedicated servers, useful values seem to be between between 8MB and 400MB
(between 1000 and 50,000 for 8K page size). Factors which raise the desired
shared buffers are larger active portions of the database, large complex
queries, large numbers of simultaneous queries, long-running procedures or
transactions, more available RAM, and faster/more CPUs. And, of course,
other applications on the machine. Contrary to some expectations, allocating
much too much shared_buffers can actually lower peformance, due time
required for scanning. Here's some examples based on anecdotes and TPC tests
on Linux machines: 

    * Laptop, Celeron processor, 384MB RAM, 25MB database: 12MB/1500
    * Athlon server, 1GB RAM, 10GB decision-support database: 120MB/15000
    * Quad PIII server, 4GB RAM, 40GB, 150-connection heavy transaction
processing database: 240MB/30000 
    * Quad Xeon server, 8GB RAM, 200GB, 300-connection heavy transaction
processing database: 400MB/50000

Please note that increasing shared_buffers, and a few other memory
parameters, will require you to modify your operating system's System V
memory parameters. See the main PostgreSQL documentation for instructions on

Shoaib Mir
EnterpriseDB (

In response to


pgsql-admin by date

Next:From: Bill MoranDate: 2007-04-12 13:13:36
Subject: Re: [GENERAL] Increasing the shared memory
Previous:From: Phillip SmithDate: 2007-04-12 05:35:15
Subject: Re: Best compressed archive_command on Linux?

pgsql-general by date

Next:From: Andrew KroegerDate: 2007-04-12 12:36:10
Subject: Re: role passwords and md5()
Previous:From: Lutz BroedelDate: 2007-04-12 10:20:14
Subject: role passwords and md5()

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group