Buffers and MacOS X

Started by Hunter Hillegasabout 23 years ago5 messages
#1Hunter Hillegas
lists@lastonepicked.com

We are installing postgres on a MacOS X Server...

On our Linux box, we had to muddle with some parameters to be able to
increase the shared memory and buffers in postgres.

Does anyone know how to do this in OS X? Or is it required?

Thanks,
Hunter

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Hunter Hillegas (#1)
Re: Buffers and MacOS X

Hunter Hillegas <lists@lastonepicked.com> writes:

We are installing postgres on a MacOS X Server...
On our Linux box, we had to muddle with some parameters to be able to
increase the shared memory and buffers in postgres.
Does anyone know how to do this in OS X? Or is it required?

In OS X 10.1, the max shared memory was a hardwired number that couldn't
be changed without recompiling the kernel --- and the standard setting
was none too darn large, either :-(. I dunno if Apple has improved
matters in 10.2.

regards, tom lane

#3Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Tom Lane (#2)
Re: Buffers and MacOS X

Tom Lane wrote:

Hunter Hillegas <lists@lastonepicked.com> writes:

We are installing postgres on a MacOS X Server...
On our Linux box, we had to muddle with some parameters to be able to
increase the shared memory and buffers in postgres.
Does anyone know how to do this in OS X? Or is it required?

In OS X 10.1, the max shared memory was a hardwired number that couldn't
be changed without recompiling the kernel --- and the standard setting
was none too darn large, either :-(. I dunno if Apple has improved
matters in 10.2.

I was going to point him to the development docs, but I see no mention
of OSX shared kernel limit tuning in there at all. Can someone submit
info to beef it up for OSX?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#4Jeffrey Bohmer
bohmer@visionlink.org
In reply to: Bruce Momjian (#3)
Re: Buffers and MacOS X

Tom Lane wrote:

Hunter Hillegas <lists@lastonepicked.com> writes:

We are installing postgres on a MacOS X Server...
On our Linux box, we had to muddle with some parameters to be able to
increase the shared memory and buffers in postgres.
Does anyone know how to do this in OS X? Or is it required?

In OS X 10.1, the max shared memory was a hardwired number that couldn't
be changed without recompiling the kernel --- and the standard setting
was none too darn large, either :-(. I dunno if Apple has improved
matters in 10.2.

I was going to point him to the development docs, but I see no mention
of OSX shared kernel limit tuning in there at all. Can someone submit
info to beef it up for OSX?

Here are instructions for setting shared memory limits on Mac OS X 10.2.

Edit the file:

/System/Library/StartupItems/SystemTuning/SystemTuning

Near the bottom, you will see these lines:

sysctl -w kern.sysv.shmmax=4194304
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=1024

These parameters are described in this document:

http://www.postgresql.org/idocs/index.php?kernel-resources.html

OS X is simialar to BSD/OS in the values for each parameter. For my system, I want PostgreSQL to use 128MB worth of buffers. I used the calculations provided in the "Reasonable Values" column of the parameters table in the document above.

So here are my settings (allowing a little extra room):

sysctl -w kern.sysv.shmmax=167772160 # bytes
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=65536 # 4K pages

Now, I can set shared_buffers in postgresql.conf to:

shared_buffers = 16384 # number of buffers, 8K each

- Jeff
--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.

#5Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Jeffrey Bohmer (#4)
Re: Buffers and MacOS X

Added to 7.3 documentation. Thanks.

---------------------------------------------------------------------------

Jeffrey Bohmer wrote:

Tom Lane wrote:

Hunter Hillegas <lists@lastonepicked.com> writes:

We are installing postgres on a MacOS X Server...
On our Linux box, we had to muddle with some parameters to be able to
increase the shared memory and buffers in postgres.
Does anyone know how to do this in OS X? Or is it required?

In OS X 10.1, the max shared memory was a hardwired number that couldn't
be changed without recompiling the kernel --- and the standard setting
was none too darn large, either :-(. I dunno if Apple has improved
matters in 10.2.

I was going to point him to the development docs, but I see no mention
of OSX shared kernel limit tuning in there at all. Can someone submit
info to beef it up for OSX?

Here are instructions for setting shared memory limits on Mac OS X 10.2.

Edit the file:

/System/Library/StartupItems/SystemTuning/SystemTuning

Near the bottom, you will see these lines:

sysctl -w kern.sysv.shmmax=4194304
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=1024

These parameters are described in this document:

http://www.postgresql.org/idocs/index.php?kernel-resources.html

OS X is simialar to BSD/OS in the values for each parameter. For my system, I want PostgreSQL to use 128MB worth of buffers. I used the calculations provided in the "Reasonable Values" column of the parameters table in the document above.

So here are my settings (allowing a little extra room):

sysctl -w kern.sysv.shmmax=167772160 # bytes
sysctl -w kern.sysv.shmmin=1
sysctl -w kern.sysv.shmmni=32
sysctl -w kern.sysv.shmseg=8
sysctl -w kern.sysv.shmall=65536 # 4K pages

Now, I can set shared_buffers in postgresql.conf to:

shared_buffers = 16384 # number of buffers, 8K each

- Jeff
--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073