Received: from localhost (maia-4.hub.org [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 89BF29FB504 for ; Tue, 19 Jun 2007 11:06:58 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 69750-06 for ; Tue, 19 Jun 2007 11:06:55 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from silene.metacarta.com (silene.metacarta.com [65.77.47.18]) by postgresql.org (Postfix) with ESMTP id 7E4389FB3A9 for ; Tue, 19 Jun 2007 11:06:55 -0300 (ADT) Received: from localhost (silene.metacarta.com [65.77.47.18]) by silene.metacarta.com (Postfix) with ESMTP id 2272F14C80F5; Tue, 19 Jun 2007 10:06:54 -0400 (EDT) Received: from silene.metacarta.com ([65.77.47.18]) by localhost (silene.metacarta.com [65.77.47.18]) (amavisd-new, port 10024) with ESMTP id 13334-07; Tue, 19 Jun 2007 10:06:51 -0400 (EDT) X-Auth-Received: from [65.77.47.195] (dhcp-65-77-47-195.metacarta.com [65.77.47.195]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by silene.metacarta.com (Postfix) with ESMTP id 6648F14C85E3; Tue, 19 Jun 2007 10:06:26 -0400 (EDT) Message-ID: <4677E2E1.2060902@metacarta.com> Date: Tue, 19 Jun 2007 10:06:25 -0400 From: Karl Wright User-Agent: Thunderbird 2.0.0.4 (Windows/20070604) MIME-Version: 1.0 To: Alvaro Herrera Cc: Tom Lane , pgsql-performance@postgresql.org Subject: Re: Performance query about large tables, lots of concurrent access References: <4676DD57.7070304@metacarta.com> <14291.1182221811@sss.pgh.pa.us> <4677B831.8060704@metacarta.com> <4677D298.2010109@metacarta.com> <20070619132643.GC4265@alvh.no-ip.org> <4677DC06.3000300@metacarta.com> <20070619134637.GG4265@alvh.no-ip.org> In-Reply-To: <20070619134637.GG4265@alvh.no-ip.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at metacarta.com X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200706/341 X-Sequence-Number: 25374 Alvaro Herrera wrote: > Karl Wright wrote: >> Alvaro Herrera wrote: >>> Karl Wright wrote: >>> >>>> This particular run lasted four days before a VACUUM became essential. >>>> The symptom that indicates that VACUUM is needed seems to be that the >>>> CPU usage of any given postgresql query skyrockets. Is this essentially >>>> correct? >>> Are you saying you weren't used to run VACUUM all the time? If so, >>> that's where the problem lies. >> Postgresql 7.4 VACUUM runs for so long that starting it with a cron job >> even every 24 hours caused multiple instances of VACUUM to eventually be >> running in my case. So I tried to find a VACUUM schedule that permitted >> each individual vacuum to finish before the next one started. A vacuum >> seemed to require 4-5 days with this particular database - or at least >> it did for 7.4. So I had the VACUUM schedule set to run every six days. > > How large is the database? I must admit I have never seen a database > that took 4 days to vacuum. This could mean that your database is > humongous, or that the vacuum strategy is wrong for some reason. > The database is humongus, and the machine is under intense load. On the instance where this long vacuum occurred, there were several large tables - one with 7,000,000 rows, one with 14,000,000, one with 140,000,000, and one with 250,000,000. > You know that you can run vacuum on particular tables, right? It would > be probably a good idea to run vacuum on the most updated tables, and > leave alone those that are not or little updated (hopefully the biggest; > this would mean that an almost-complete vacuum run would take much less > than a whole day). Yeah, sorry, that doesn't apply here. > > Or maybe vacuum was stuck waiting on a lock somewhere. > >> I will be experimenting with 8.1 to see how long it takes to complete a >> vacuum under load conditions tonight. > > You can also turn autovacuum on in 8.1, which might help quite a bit > with finding a good vacuum schedule (you would need a bit of tuning it > though, of course). > > In any case, if you are struggling for performance you are strongly > adviced to upgrade to 8.2. > Ok - that's something I should be able to do once we can go to debian's etch release. There's a backport of 8.2 available there. (The one for sarge is still considered 'experimental'). Karl