X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 25D5F5286E for ; Fri, 3 Jun 2005 05:50:34 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 84059-06 for ; Fri, 3 Jun 2005 08:50:25 +0000 (GMT) Received: from titan.ecommit.de (titan.ecommit.de [195.145.58.245]) by svr1.postgresql.org (Postfix) with ESMTP id ECE0052851 for ; Fri, 3 Jun 2005 05:50:23 -0300 (ADT) Received: from titan.ecommit.de (localhost [127.0.0.1]) by titan.ecommit.de (8.12.6/8.12.6/SuSE Linux 0.6) with ESMTP id j538no0A025123; Fri, 3 Jun 2005 10:49:51 +0200 Received: from titan.ecommit.de (root@localhost) by titan.ecommit.de (8.12.6/8.12.6/Submit) with ESMTP id j538nopV025122; Fri, 3 Jun 2005 10:49:50 +0200 Received: from fandelm.ecommit.de (fandelm.tc.de 192.168.252.51) by titan.ecommit.de (Scalix SMTP Relay 9.0.0.26) via ESMTP; Fri, 03 Jun 2005 10:49:48 +0200 (CEST) Date: Fri, 3 Jun 2005 10:49:04 +0200 From: "Martin Fandel" To: Mark Kirkwood Cc: pgsql-performance@postgresql.org Message-ID: <1117788544.4380.79.camel@fandelm.ecommit.de> In-Reply-To: <429FF4AA.7090200@paradise.net.nz> References: <1117201312.7060.6.camel@fandelm.ecommit.de> References: <429D47FD.7090501@streppone.it> References: <429D56B2.9070302@paradise.net.nz> References: References: <429FF4AA.7090200@paradise.net.nz> Subject: Re: SHMMAX / SHMALL Was (Re: postgresql-8.0.1 performance tuning) x-scalix-Hops: 1 X-Mailer: Evolution 2.0.1 Mime-Version: 1.0 Content-Type: text/plain Content-Disposition: inline X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.036 tagged_above=0 required=5 tests=AWL X-Spam-Level: X-Archive-Number: 200506/63 X-Sequence-Number: 12701 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@localhost:~/data$ cat /proc/sys/kernel/shmmax > > 33554432 > > postgres@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