X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by postgresql.org (Postfix) with ESMTP id 1B65A9DCB10 for ; Tue, 21 Mar 2006 17:19:25 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 67559-06 for ; Tue, 21 Mar 2006 17:19:26 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey- Received: from exchange.g2switchworks.com (mail.g2switchworks.com [63.87.162.25]) by postgresql.org (Postfix) with ESMTP id 03E929DCC32 for ; Tue, 21 Mar 2006 17:19:20 -0400 (AST) Received: from 10.10.1.37 ([10.10.1.37]) by exchange.g2switchworks.com ([10.10.1.2]) with Microsoft Exchange Server HTTP-DAV ; Tue, 21 Mar 2006 21:19:22 +0000 Received: from state.g2switchworks.com by mail.g2switchworks.com; 21 Mar 2006 15:19:22 -0600 Subject: Re: Migration study, step 1: bulk write performance From: Scott Marlowe To: Ron Cc: Mikael Carneholm , pgsql-performance@postgresql.org In-Reply-To: <7.0.1.0.2.20060320161133.03a0b5a8@earthlink.net> References: <7F10D26ECFA1FB458B89C5B4B0D72C2B088286@sesrv12.wirelesscar.com> <1142973890.24487.510.camel@localhost.localdomain> <7.0.1.0.2.20060320161133.03a0b5a8@earthlink.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Message-Id: <1142975962.17883.203.camel@state.g2switchworks.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2) Date: Tue, 21 Mar 2006 15:19:22 -0600 X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, score=0.145 required=5 tests=[AWL=0.144, UNPARSEABLE_RELAY=0.001] X-Spam-Score: 0.145 X-Spam-Level: X-Archive-Number: 200603/429 X-Sequence-Number: 17866 On Mon, 2006-03-20 at 15:17, Ron wrote: > At 03:44 PM 3/21/2006, Simon Riggs wrote: > >On Mon, 2006-03-20 at 15:59 +0100, Mikael Carneholm wrote: > > > > > This gives that 10Gb takes ~380s => ~27Mb/s (with fsync=off), > > compared to the raw dd result (~75.5Mb/s). > > > > > > I assume this difference is due to: > > > - simultaneous WAL write activity (assumed: for each byte written > > to the table, at least one byte is also written to WAL, in effect: > > 10Gb data inserted in the table equals 20Gb written to disk) > > > - lousy test method (it is done using a function => the > > transaction size is 10Gb, and 10Gb will *not* fit in wal_buffers :) ) > > > - poor config > > > > > checkpoint_segments = 3 > > > >With those settings, you'll be checkpointing every 48 Mb, which will be > >every about once per second. Since the checkpoint will take a reasonable > >amount of time, even with fsync off, you'll be spending most of your > >time checkpointing. bgwriter will just be slowing you down too because > >you'll always have more clean buffers than you can use, since you have > >132MB of shared_buffers, yet flushing all of them every checkpoint. > IIRC, Josh Berkus did some benches that suggests in pg 8.x a value of > 64 - 256 is best for checkpoint_segments as long as you have the RAM available. > > I'd suggest trying values of 64, 128, and 256 and setting > checkpoint_segments to the best of those. I've also found that modest increases in commit_siblings and commit_delay help a lot on certain types of imports.