Re: Advice/guideline on increasing shared_buffers and kernel parameters
От | Jan Lentfer |
---|---|
Тема | Re: Advice/guideline on increasing shared_buffers and kernel parameters |
Дата | |
Msg-id | e6961fb1a4223e08774949997e0bbca6@neslonek.homeunix.org обсуждение исходный текст |
Ответ на | Advice/guideline on increasing shared_buffers and kernel parameters ("Gnanakumar" <gnanam@zoniac.com>) |
Список | pgsql-admin |
Hi Gnanam, On Tue, 8 May 2012 12:22:58 +0530, Gnanakumar wrote: > Our Production server has got 35 GB physical RAM size. Since the > server > has lots of RAM, we want to really make use of it. We've already > configured > "max_connections" to 1000 and "shared_buffers" to 1536 MB, but when > we tried > to increase only "shared_buffers" to 3072MB (keeping > "max_connections" as it > is), PostgreSQL failed to start with the following error: > > EDTFATAL: could not create shared memory segment: Invalid argument > EDTDETAIL: Failed system call was shmget(key=5432001, > size=3307192320, 03600). > > Keeping max connection property to 1000, how do I "best" tune/set up > its > memory related parameters (including Linux Kernel parameters -- > SHMMAX and > SHMALL)? did you read http://www.postgresql.org/docs/8.2/static/kernel-resources.html ? If it is a dedicated DB server the rule of thumb usually is to use 25% RAM for shared buffers, but no more than 8GB unless proper benchmarking has shown a benefit using above 8GB. But I am not sure if 8GB of shared buffers is suitable for 8.2 at all. 8.2 is EOL btw. Also set effective cache size to 50% RAM. Depending on your work load you might tune work_mem, maintenance_work_mem etc. Also, do you really NEED 1000 concurrent sessions? IF you really do, it might be worse to look into a connection pooler. Here is a quite nice guide: http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server hth Jan -- professional: http://www.oscar-consult.de private: http://neslonek.homeunix.org/drupal/
В списке pgsql-admin по дате отправления: