On Mon, Nov 8, 2010 at 8:33 AM, umut orhan <umut_angelf...@yahoo.com> wrote:
> Hi all,
> I've collected some interesting results during my experiments which I
> couldn't figure out the reason behind them and need your assistance.
> I'm running PostgreSQL 9.0 on a quad-core machine having two level on-chip
> cache hierarchy. PostgreSQL has a large and warmed-up buffer
> cache thus, no disk I/O is observed during experiments (i.e. for each query
> buffer cache hit rate is 100%). I'm pinning each query/process to an
> individual core. Queries are simple read-only queries (only selects). Nested
> loop (without materialize) is used for the join operator.
> When I pin a single query to an individual core, its execution time is
> observed as 111 seconds. This result is my base case. Then, I fire two
> instances of the same query concurrently and pin them to two different cores
> separately. However, each execution time becomes 132 seconds in this case.
> In a similar trend, execution times are increasing for three instances (164
> seconds) and four instances (201 seconds) cases too. What I was expecting is
> a linear improvement in throughput (at least). I tried several different
> queries and got the same trend at each time.
> I wonder why execution times of individual queries are increasing when I
> increase the number of their instances.
> Btw, I don't think on-chip cache hit/miss rates make a difference since L2
> cache misses are decreasing as expected. I'm not an expert in PostgreSQL
> internals. Maybe there is a lock-contention (spinlocks?) occurring even if
> the queries are read-only. Anyways, all ideas are welcome.

My guess would be it's memory contention.  What architecture is your
quad core cpu?

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to