Re: PostgreSQL's share_buffer calculation using shmget() versus kernel.shmmax
От | Pavan Deolasee |
---|---|
Тема | Re: PostgreSQL's share_buffer calculation using shmget() versus kernel.shmmax |
Дата | |
Msg-id | CABOikdMfZM3TGe_=8CMfFWkS1dcEafOuykNv3Ei1_1W9ugGCJQ@mail.gmail.com обсуждение исходный текст |
Ответ на | PostgreSQL's share_buffer calculation using shmget() versus kernel.shmmax (Mel Llaguno <mllaguno@coverity.com>) |
Ответы |
Re: PostgreSQL's share_buffer calculation using shmget()
versus kernel.shmmax
|
Список | pgsql-admin |
On Thu, Feb 7, 2013 at 6:28 AM, Mel Llaguno <mllaguno@coverity.com> wrote: > All, > > I'm wondering about how postgresql calculates the value for shared buffers > as I see some discrepancies with what the following script provides versus > what is recommended in the pgctl.log when the database fails to start. > > #!/bin/bash > # simple shmsetup script > page_size=`getconf PAGE_SIZE` > phys_pages=`getconf _PHYS_PAGES` > shmall=`expr $phys_pages / 2` > shmmax=`expr $shmall \* $page_size` > echo kernel.shmmax = $shmmax > echo kernel.shmall = $shmall > > Any pointers which would explain these differences would be greatly > appreciate. Ultimately, I'd like to calculate the expected kernel.shmmax > which matches postgresql's shmget() call. > I don't know where you got hold of this script, but it seems this is setting SHMMAX equal to half the size of RAM. So if your system has 4GB RAM, a process can request maximum of 2GB of shared memory. The amount of shared memory PostgreSQL needs is governed by several configuration parameters, but the most important and the one which will eat up most of that shared memory is "shared_buffers". So if you want to work within the bounds of SHMMAX set by this script, you would need to set shared_buffers a notch lower than that. But often its easier and better to decide your Postgres configuration parameters and then set SHMMAX to satisfy that. Thanks, Pavan -- Pavan Deolasee http://www.linkedin.com/in/pavandeolasee
В списке pgsql-admin по дате отправления: