X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id DB981D6F66 for ; Tue, 23 Aug 2005 14:41:43 -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 03546-07 for ; Tue, 23 Aug 2005 17:41:40 +0000 (GMT) Received: from wolff.to (wolff.to [66.93.197.194]) by svr1.postgresql.org (Postfix) with SMTP id 3CC02D6ED5 for ; Tue, 23 Aug 2005 14:41:39 -0300 (ADT) Received: (qmail 23428 invoked by uid 500); 23 Aug 2005 17:41:08 -0000 Date: Tue, 23 Aug 2005 12:41:08 -0500 From: Bruno Wolff III To: gokulnathbabu manoharan Cc: pgsql-performance@postgresql.org Subject: Re: Caching by Postgres Message-ID: <20050823174108.GD19586@wolff.to> Mail-Followup-To: Bruno Wolff III , gokulnathbabu manoharan , pgsql-performance@postgresql.org References: <20050823171045.12112.qmail@web51309.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050823171045.12112.qmail@web51309.mail.yahoo.com> User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.006 required=5 tests=[AWL=0.006] X-Spam-Level: X-Archive-Number: 200508/346 X-Sequence-Number: 14093 On Tue, Aug 23, 2005 at 10:10:45 -0700, gokulnathbabu manoharan wrote: > Hi all, > > I like to know the caching policies of Postgresql. > What parameter in the postgresql.conf affects the > cache size used by the Postgresql? As far as I have > searched my knowledge of the parameters are The main policy is to let the OS do most of the caching. > 1. shared_buffers - Sets the limit on the amount of > shared memory used. If I take this is as the cache > size then my performance should increase with the > increase in the size of shared_buffers. But it seems > it is not the case and my performance actually > decreases with the increase in the shared_buffers. I > have a RAM size of 32 GB. The table which I use more > frequently has around 68 million rows. Can I cache > this entire table in RAM? Using extermely large values for shared buffers is known to be a performance loss for Postgres. Some improvements were made for 8.0 and more for 8.1. The OS will cache frequently used data from files for you. So if you are using that table a lot and the rows aren't too wide, it should mostly be cached for you by the OS. > 2. work_mem - It is the amount of memory used by an > operation. My guess is once the operation is complete > this is freed and hence has nothing to do with the > caching. This is used for sorts and some other things. > 3. effective_cache_size - The parameter used by the > query planner and has nothing to do with the actual > caching. You are supposed to use this to give the planner an idea about how much space the OS will using for caching on behalf of Posgres. > So kindly help me in pointing me to the correct > parameter to set. > > It will be great if you can point me to the docs that > explains the implementation of caching in Postgresql > which will help me in understanding things much > clearly. You probably want to read the following: http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html