Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 4327D64FFEC for ; Wed, 20 Aug 2008 22:50:01 -0300 (ADT) Received: from postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 28680-02 for ; Wed, 20 Aug 2008 22:49:51 -0300 (ADT) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from gv-out-0910.google.com (gv-out-0910.google.com [216.239.58.188]) by postgresql.org (Postfix) with ESMTP id EB2D564FCE6 for ; Wed, 20 Aug 2008 22:49:56 -0300 (ADT) Received: by gv-out-0910.google.com with SMTP id i36so94277gve.7 for ; Wed, 20 Aug 2008 18:49:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=VlEzKhr+0vStBzYyRHrTC8aYtI5dO22vIAeKIUNTBus=; b=XWyLEStYuODY8ORdLaysy3i5CKdDCdxwWn1D50ntpt1WqUCQCz1VIGujUBgSz+LjzA yDlZBChBwXm3+X+AQGdKYaUgXfMaBvpVdC/Ok7Cc4Ns0hzCNeoIYvKLxiPcUTtrspXY0 0et1xN0w3URGFz8AfWr0SFrWspP8zy2pGwFqA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=TJyge5qMpfUVb7xrEbU62nWG7T0vyPMSPWS0Ar/2JjIPJ+o/6gi4MUS8NHTSQggqr2 mHO2CN2XGPVeMTbfljWrhXI8INftrG/TUhEY031jvFFS+2oa84Vu/vSHBY87KN7JVHjO SO7iA9o3WlEI80xUyukhJKpnMiO2fxxbYfjRE= Received: by 10.103.173.5 with SMTP id a5mr557310mup.117.1219283394659; Wed, 20 Aug 2008 18:49:54 -0700 (PDT) Received: by 10.103.12.18 with HTTP; Wed, 20 Aug 2008 18:49:54 -0700 (PDT) Message-ID: Date: Wed, 20 Aug 2008 21:49:54 -0400 From: "Merlin Moncure" To: "Christiaan Willemsen" Subject: Re: How to setup disk spindles for best performance Cc: pgsql-performance@postgresql.org In-Reply-To: <972BDF1A-B4ED-46EC-B416-0CDF15A0439A@technocon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <972BDF1A-B4ED-46EC-B416-0CDF15A0439A@technocon.com> 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: 200808/236 X-Sequence-Number: 31117 On Wed, Aug 20, 2008 at 6:25 PM, Christiaan Willemsen wrote: > I'm currently trying to find out what the best configuration is for our new > database server. It will server a database of about 80 GB and growing fast. > The new machine has plenty of memory (64GB) and 16 SAS disks, of wich two > are already in use as a mirror for the OS. > > The rest can be used for PostgreSQL. So that makes a total of 14 15k.5 SAS > diks. There is obviously a lot to interesting reading to be found, most of > them stating that the transaction log should be put onto a separate disk > spindle. You can also do this with the indexes. Since they will be updated a > lot, I guess that might be a good idea. But what no-one states, is what > performance these spindle should have in comparison to the data spindle? If > I create a raid 10 of 6 disks for the data, 4 disk raid 10 for the log, and > 4 disk raid 10 for the indexes, will this yield best performance? Or is it > sufficient to just have a simple mirror for the log and/or indexes...? I > have not found any information about these figures, and I guess it should be > possible to give some pointers on how these different setup might affect > performance? Well, the speed of your logging device puts an upper bound on the write speed of the database. While modern sas drives can do 80mb/sec + with sequential ops, this can turn to 1mb/sec real fast if the logging is duking it out with the other generally random work the database has to do, which is why it's often separated out. 80mb/sec is actually quite a lot in database terms and you will likely only get anything close to that when doing heavy insertion, so that it's unlikely to become the bottleneck. Even if you hit that limit sometimes, those drives are probably put to better use in the data volume somewhere. As for partitioning the data volume, I'd advise this only if you have a mixed duty database that does different tasks with different performance requirements. You may be serving a user interface which has very low maximum transaction time and therefore gets dedicated disk i/o apart from the data churn that is going on elsewhere. Apart from that though, I'd keep it in a single volume. merlin