Received: from localhost (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 91B896503C1 for ; Tue, 9 Dec 2008 20:54:45 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 09892-04 for ; Tue, 9 Dec 2008 20:54:42 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-ew0-f21.google.com (mail-ew0-f21.google.com [209.85.219.21]) by mail.postgresql.org (Postfix) with ESMTP id 50910650123 for ; Tue, 9 Dec 2008 20:54:42 -0400 (AST) Received: by ewy14 with SMTP id 14so406812ewy.19 for ; Tue, 09 Dec 2008 16:54:40 -0800 (PST) Received: by 10.210.113.16 with SMTP id l16mr910458ebc.120.1228870480441; Tue, 09 Dec 2008 16:54:40 -0800 (PST) Received: from oxford.xeocode.com.enterprisedb.com ([87.127.95.198]) by mx.google.com with ESMTPS id f13sm1349927gvd.32.2008.12.09.16.54.38 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 09 Dec 2008 16:54:39 -0800 (PST) To: Matthew Wakeling Cc: "pgsql-performance\@postgresql.org" Subject: Re: Need help with 8.4 Performance Testing In-Reply-To: (Matthew Wakeling's message of "Tue\, 9 Dec 2008 17\:35\:16 +0000 \(GMT\)") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) X-Draft-From: ("nnimap+imap.gmail.com:PG" 99824) References: <200812071138.01215.josh@agliodbs.com> <493E6DBE.2040605@verizon.net> From: Gregory Stark Organization: EnterpriseDB Date: Wed, 10 Dec 2008 00:54:37 +0000 Message-ID: <87y6yohmsy.fsf@oxford.xeocode.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200812/102 X-Sequence-Number: 32138 Matthew Wakeling writes: > On Tue, 9 Dec 2008, Scott Marlowe wrote: >> I wonder how many hard drives it would take to be CPU bound on random >> access patterns? About 40 to 60? And probably 15k / SAS drives to >> boot. Cause that's what we're looking at in the next few years where >> I work. > > There's a problem with that thinking. That is, in order to exercise many > spindles, you will need to have just as many (if not more) concurrent requests. > And if you have many concurrent requests, then you can spread them over > multiple CPUs. So it's more a case of "How many hard drives PER CPU". It also > becomes a matter of whether Postgres can scale that well. Well: $ units 2445 units, 71 prefixes, 33 nonlinear units You have: 8192 byte/5ms You want: MB/s * 1.6384 / 0.61035156 At 1.6MB/s per drive if find Postgres is cpu-bound doing sequential scans at 1GB/s you'll need about 640 drives to keep one cpu satisfied doing random I/O -- assuming you have perfect read-ahead and the read-ahead itself doesn't add cpu overhead. Both of which are false of course, but at least in theory that's what it'll take. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's On-Demand Production Tuning