Received: from maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with ESMTP id 850C4634CF0 for ; Wed, 8 Sep 2010 19:30:10 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251]) (amavisd-maia, port 10024) with ESMTP id 19767-03-2 for ; Wed, 8 Sep 2010 22:30:02 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from vexbert.mr-paradox.net (vexbert.mr-paradox.net [198.145.180.174]) by mail.postgresql.org (Postfix) with ESMTP id AFFEF634A22 for ; Wed, 8 Sep 2010 19:30:01 -0300 (ADT) Received: by vexbert.mr-paradox.net (Postfix, from userid 18391) id 546F4845EE; Wed, 8 Sep 2010 18:29:59 -0400 (EDT) Date: Wed, 8 Sep 2010 15:29:59 -0700 From: David Kerr To: Kevin Grittner Cc: Greg Smith , pgsql-performance@postgresql.org, Tom Lane Subject: Re: pgbench could not send data to client: Broken pipe Message-ID: <20100908222959.GB59539@mr-paradox.net> References: <8037.1283973026@sss.pgh.pa.us> <4C87E3A6.8060800@2ndquadrant.com> <20100908195654.GB49941@mr-paradox.net> <9771.1283978128@sss.pgh.pa.us> <20100908204443.GG49941@mr-paradox.net> <4C87B22802000025000353B7@gw.wicourts.gov> <20100908212056.GI49941@mr-paradox.net> <4C87BF0502000025000353BE@gw.wicourts.gov> <20100908220011.GA59539@mr-paradox.net> <4C87C77C02000025000353D2@gw.wicourts.gov> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C87C77C02000025000353D2@gw.wicourts.gov> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-1.91 tagged_above=-10 required=5 tests=BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01 X-Spam-Level: X-Archive-Number: 201009/41 X-Sequence-Number: 40244 On Wed, Sep 08, 2010 at 05:27:24PM -0500, Kevin Grittner wrote: - David Kerr wrote: - - > My assertian/hope is that the saturation point - > on this machine should be higher than most. - - Here's another way to think about it -- how long do you expect your - average database request to run? (Our top 20 transaction functions - average about 3ms per execution.) What does that work out to in - transactions per second? That's the TPS you can achieve *on each - connection* if your pooler is efficient. If you've determined a - connection pool size based on hardware resources, divide your - anticipated requests per second by that pool size. If the result is - less than the TPS each connection can handle, you're in good shape. - If it's higher, you may need more hardware to satisfy the load. - - Of course, the only way to really know some of these numbers is to - test your actual application on the real hardware under realistic - load; but sometimes you can get a reasonable approximation from - early tests or "gut feel" based on experience with similar - applications. I strongly recommend trying incremental changes to - various configuration parameters once you have real load, and - monitor the impact. The optimal settings are often not what you - expect. - - And if the pooling isn't producing the results you expect, you - should look at its configuration, or (if you can) try other pooler - products. - - -Kevin - Thanks for the insight. we're currently in performance testing of the app. Currently, the JVM is the bottleneck, once we get past that i'm sure it will be the database at which point I'll have the kind of data you're talking about. Dave