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 CC667D6F5D for ; Tue, 23 Aug 2005 14:42:53 -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 03180-03 for ; Tue, 23 Aug 2005 17:42:47 +0000 (GMT) Received: from frank.wiles.org (frank.wiles.org [24.124.39.75]) by svr1.postgresql.org (Postfix) with ESMTP id 2B176D6ED5 for ; Tue, 23 Aug 2005 14:42:46 -0300 (ADT) Received: from kungfu (frank.wiles.org [127.0.0.1]) by frank.wiles.org (8.13.1/8.13.1) with SMTP id j7NGpQiA008440; Tue, 23 Aug 2005 11:51:27 -0500 Date: Tue, 23 Aug 2005 12:43:23 -0500 From: Frank Wiles To: gokulnathbabu manoharan Cc: pgsql-performance@postgresql.org Subject: Re: Caching by Postgres Message-Id: <20050823124323.710a9dd3.frank@wiles.org> In-Reply-To: <20050823171045.12112.qmail@web51309.mail.yahoo.com> References: <20050823171045.12112.qmail@web51309.mail.yahoo.com> X-Mailer: Sylpheed version 1.0.4 (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0 required=5 tests=[none] X-Spam-Level: X-Archive-Number: 200508/347 X-Sequence-Number: 14094 On Tue, 23 Aug 2005 10:10:45 -0700 (PDT) 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 > > 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? increasing shared_buffers to a point helps, but after a certain threshold it can actually degree performance. > 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 the amount of memory used for things like sorts and order bys on a per backend process basis. > 3. effective_cache_size - The parameter used by the > query planner and has nothing to do with the actual > caching. The instructs the query planner on how large the operating system's disk cache is. There isn't a built in cache, PostgreSQL relies on the operating system to cache the on disk information based on how often it is used. In most cases this is probably more accurate anyway. I wrote an article on PostgreSQL performance tuning that has links to several other related sites, you can find it here: http://www.revsys.com/writings/postgresql-performance.html --------------------------------- Frank Wiles http://www.wiles.org ---------------------------------