X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 6473211F60B1 for ; Wed, 26 Apr 2006 19:29:15 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 31351-10 for ; Wed, 26 Apr 2006 19:29:00 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from noel.decibel.org (noel.decibel.org [67.100.216.10]) by postgresql.org (Postfix) with ESMTP id 92E8211F60AE for ; Wed, 26 Apr 2006 19:28:58 -0300 (ADT) Received: by noel.decibel.org (Postfix, from userid 1001) id 8A8DF56423; Wed, 26 Apr 2006 17:28:58 -0500 (CDT) Received: (hashcash-sendmail, from uid 1001); Wed, 26 Apr 2006 17:28:56 -0500 Date: Wed, 26 Apr 2006 17:28:56 -0500 From: "Jim C. Nasby" To: Steve Poe , bizgres-general@pgfoundry.org Cc: Wu Fengguang , pgsql-performance@postgresql.org Subject: Re: Introducing a new linux readahead framework Message-ID: <20060426222855.GC97354@pervasive.com> References: <20060421013826.GA5217@mail.ustc.edu.cn> <1146082140.11414.14.camel@amd64-gentoo-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1146082140.11414.14.camel@amd64-gentoo-laptop> X-Operating-System: FreeBSD 6.0-RELEASE-p4 amd64 X-Distributed: Join the Effort! http://www.distributed.net User-Agent: Mutt/1.5.11 X-Hashcash: 1:20:060426:steve.poe@gmail.com::zRGkH/YdNjbFk3Ub:000000000000000000 0000000000000000000000000xQ6 X-Hashcash: 1:20:060426:bizgres-general@pgfoundry.org::mwDEyrDFumTEMadD:00000000 000000000000000000000000MRPB X-Hashcash: 1:20:060426:wfg@mail.ustc.edu.cn::CpeQNugui5XgJEP1:00000000000000000 00000000000000000000000044Eo X-Hashcash: 1:20:060426:pgsql-performance@postgresql.org::5deflESmwVjbkrx9:00000 0000000000000000000000003sUr X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200604/615 X-Sequence-Number: 18699 (including bizgres-general) Has anyone done any testing on bizgres? It's got some patches that eliminate a lot of IO bottlenecks, so it might present even larger gains. On Wed, Apr 26, 2006 at 03:08:59PM -0500, Steve Poe wrote: > I found an average 14% improvement Using Pg 7.4.11 with odbc-bench as my > test bed with Wu's kernel patch. I have not tried version 8.x yet. > > Thanks Wu. > > Steve Poe > > Using Postgresql 7.4.11, on an dual Opteron with 4GB > > On Fri, 2006-04-21 at 09:38 +0800, Wu Fengguang wrote: > > Greetings, > > > > I'd like to introduce a new readahead framework for the linux kernel: > > http://www.ussg.iu.edu/hypermail/linux/kernel/0603.2/1021.html > > > > HOW IT WORKS > > > > In adaptive readahead, the context based method may be of particular > > interest to postgresql users. It works by peeking into the file cache > > and check if there are any history pages present or accessed. In this > > way it can detect almost all forms of sequential / semi-sequential read > > patterns, e.g. > > - parallel / interleaved sequential scans on one file > > - sequential reads across file open/close > > - mixed sequential / random accesses > > - sparse / skimming sequential read > > > > It also have methods to detect some less common cases: > > - reading backward > > - seeking all over reading N pages > > > > WAYS TO BENEFIT FROM IT > > > > As we know, postgresql relies on the kernel to do proper readahead. > > The adaptive readahead might help performance in the following cases: > > - concurrent sequential scans > > - sequential scan on a fragmented table > > (some DBs suffer from this problem, not sure for pgsql) > > - index scan with clustered matches > > - index scan on majority rows (in case the planner goes wrong) > > > > TUNABLE PARAMETERS > > > > There are two parameters which are described in this email: > > http://www.ussg.iu.edu/hypermail/linux/kernel/0603.2/1024.html > > > > Here are the more oriented guidelines for postgresql users: > > > > - /proc/sys/vm/readahead_ratio > > Since most DB servers are bounty of memory, the danger of readahead > > thrashing is near to zero. In this case, you can set readahead_ratio to > > 100(or even 200:), which helps the readahead window to scale up rapidly. > > > > - /proc/sys/vm/readahead_hit_rate > > Sparse sequential reads are read patterns like {0, 2, 4, 5, 8, 11, ...}. > > In this case we might prefer to do readahead to get good I/O performance > > with the overhead of some useless pages. But if you prefer not to do so, > > set readahead_hit_rate to 1 will disable this feature. > > > > - /sys/block/sd/queue/read_ahead_kb > > Set it to a large value(e.g. 4096) as you used to do. > > RAID users might want to use a bigger number. > > > > TRYING IT OUT > > > > The latest patch for stable kernels can be downloaded here: > > http://www.vanheusden.com/ara/ > > > > Before compiling, make sure that the following options are enabled: > > Processor type and features -> Adaptive file readahead > > Processor type and features -> Readahead debug and accounting > > > > HELPING AND CONTRIBUTING > > > > The patch is open to fine-tuning advices :) > > Comments and benchmarking results are highly appreciated. > > > > Thanks, > > Wu > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 4: Have you searched our list archives? > > > > http://archives.postgresql.org > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org > -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461