From: | "Martin Fandel" <martin(dot)fandel(at)alphyra-evs(dot)de> |
---|---|
To: | Mark Kirkwood <markir(at)paradise(dot)net(dot)nz> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: SHMMAX / SHMALL Was (Re: postgresql-8.0.1 performance tuning) |
Date: | 2005-06-03 08:49:04 |
Message-ID: | 1117788544.4380.79.camel@fandelm.ecommit.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Aah ok :)
I've set my values now as follow (2GB RAM):
SHMMAX=`cat /proc/meminfo | grep MemTotal | cut -d: -f 2 | awk '{print
$1*1024/3}'`
echo kernel.shmmax=${SHMMAX} >> /etc/sysctl.conf
SHMALL=`expr ${SHMALL} / 4096 \* \( 4096 / 16 \)`
echo kernel.shmall=${SHMALL} >> /etc/sysctl.conf
sysctl.conf:
kernel.shmmax=708329472
kernel.shmall=44270592
postgresql.conf:
max_connections=500
shared_buffers=40000 # ~312MB, min. 1000, max ~ 83000
best regards,
Martin
Am Freitag, den 03.06.2005, 18:11 +1200 schrieb Mark Kirkwood:
> Paul McGarry wrote:
>
> > Based on the powerpostgresql.com Performance Checklist [1] and
> > Annotated Postgresql.conf [2] I understand that:
> > -I should have less than 1/3 of my total memory as shared_buffers
> > -For my server 15000 is a fairly reasonable starting point for
> > shared_buffers which is ~120MB
> > -I have 100 max_connections.
> >
> > So I was going to set SHMMAX to 134217728 (ie 128 Meg)
> >
> > What should SHMALL be?
> >
> > The current system values are
> > postgres(at)localhost:~/data$ cat /proc/sys/kernel/shmmax
> > 33554432
> > postgres(at)localhost:~/data$ cat /proc/sys/kernel/shmall
> > 2097152
> >
> > ie SHMALL seems to be 1/16 of SHMMAX
> >
>
> No - shmall is in 4k pages _ so this amounts to 8G! This is fine -
> unless you wish to decrease it in order to prevent too many shared
> memory applications running.
>
> BTW - the docs have been amended for 8.1 to suggest shmmax=134217728 and
> shmall=2097152 (was going to point you at them - but I cannot find them
> on the Postgresql site anymore...).
>
> There seems to be some longstanding confusion in the Linux community
> about the units for shmall (some incorrect documentation from Oracle on
> the issue does not help I am sure....) - to the point where I downloaded
> kernel source to check (reproducing here):
>
>
> linux-2.6.11.1/include/linux/shm.h:13->
>
> #define SHMMAX 0x2000000 /* max shared seg size (bytes) */
> #define SHMMIN 1 /* min shared seg size (bytes) */
> #define SHMMNI 4096 /* max num of segs system wide */
> #define SHMALL (SHMMAX/PAGE_SIZE*(SHMMNI/16)) /* max shm system wide
> (pages) */
> #define SHMSEG SHMMNI
>
>
> Hope that helps
>
> Best wishes
>
> Mark
From | Date | Subject | |
---|---|---|---|
Next Message | Mark Kirkwood | 2005-06-03 09:10:24 | Re: SHMMAX / SHMALL Was (Re: postgresql-8.0.1 performance |
Previous Message | Mindaugas Riauba | 2005-06-03 08:41:08 | Re: How to avoid database bloat |