pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Scott Carey <scott@richrelevance.com>
To: Scott Carey <scott@richrelevance.com>
To: Jignesh K. Shah <J.K.Shah@Sun.COM>
To: pgsql-performance@postgresql.org <pgsql-performance@postgresql.org>
Subject: Re: Proposal of tunable fix for scalability of 8.4
Date: Fri, 13 Mar 2009 10:48:38 -0700
Message-ID: <C5DFEA86.342D%scott@richrelevance.com> (raw)
In-Reply-To: <C5DFE61F.3426%scott@richrelevance.com>

On 3/13/09 10:29 AM, "Scott Carey" <scott@richrelevance.com> wrote:


-----------------
Now, with 0ms delay, no threading change:
Throughput is 136000/min @184 users, response time 13ms.  Response time has not jumped too drastically yet, but linear performance increases stopped at about 130 users or so. ProcArrayLock busy, very busy.  CPU: 35% user, 11% system, 54% idle

With 0ms delay, and lock modification 2 (wake some, but not all)
Throughput is 161000/min @328 users, response time 28ms.  At 184 users as before the change, throughput is 147000/min with response time 0.12ms.  Performance scales linearly to 144 users, then slows down and slightly increases after that with more concurrency.
Throughput increase is between 15% and 25%.


Forgot some data:  with the second test above, CPU: 48% user, 18% sys, 35% idle.   CPU increased from 46% used in the first test to 65% used, the corresponding throughput increase was not as large, but that is expected on an 8-threads per core server since memory bandwidth and cache resources at a minimum are shared and only trivial tasks can scale 100%.

Based on the above, I would guess that attaining closer to 100% utilization (its hard to get past 90% with that many cores no matter what), will probablyl give another 10 to 15% improvement at most, to maybe 180000/min throughput.

Its also rather interesting that the 2000 connection case with wait times gets 170000/min throughput and beats the 328 users with 0 delay result above.  I suspect the 'wake all' version is just faster.  I would love to see a 'wake all shared, leave exclusives at front of queue' version, since that would not allow lock starvation.

view thread (119+ messages)  latest in thread

Message-ID: <C5DFEA86.342D%scott@richrelevance.com>
Permalink:  ../C5DFEA86.342D%25scott@richrelevance.com/
Also on:    postgresql.org/message-id/C5DFEA86.342D%scott@richrelevance.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: scott@richrelevance.com, J.K.Shah@Sun.COM
  Subject: Re: Proposal of tunable fix for scalability of 8.4
  In-Reply-To: <C5DFEA86.342D%scott@richrelevance.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox