Re: Parallel Select query performance and shared buffers - Mailing list pgsql-performance

From Metin Doslu
Subject Re: Parallel Select query performance and shared buffers
Date
Msg-id CAL1dPccjD+J8SH40WajMZFrUVoxSsLUQV1zQN_3tGqOUVgs-_A@mail.gmail.com
Whole thread Raw
In response to Re: Parallel Select query performance and shared buffers  (Claudio Freire <klaussfreire@gmail.com>)
Responses Re: Parallel Select query performance and shared buffers
List pgsql-performance
Looking into syncscan.c, it says in comments:

"When multiple backends run a sequential scan on the same table, we try to keep them synchronized to reduce the overall I/O needed."

But in my workload, every process was running on a different table.




On Tue, Dec 3, 2013 at 5:56 PM, Claudio Freire <klaussfreire@gmail.com> wrote:
On Tue, Dec 3, 2013 at 10:49 AM, Metin Doslu <metin@citusdata.com> wrote:
> We have several independent tables on a multi-core machine serving Select
> queries. These tables fit into memory; and each Select queries goes over one
> table's pages sequentially. In this experiment, there are no indexes or
> table joins.
>
> When we send concurrent Select queries to these tables, query performance
> doesn't scale out with the number of CPU cores. We find that complex Select
> queries scale out better than simpler ones. We also find that increasing the
> block size from 8 KB to 32 KB, or increasing shared_buffers to include the
> working set mitigates the problem to some extent.
>
> For our experiments, we chose an 8-core machine with 68 GB of memory from
> Amazon's EC2 service. We installed PostgreSQL 9.3.1 on the instance, and set
> shared_buffers to 4 GB.


If you are certain your tables fit in RAM, you may want to disable
synchronized sequential scans, as they will create contention between
the threads.

pgsql-performance by date:

Previous
From: Claudio Freire
Date:
Subject: Re: Parallel Select query performance and shared buffers
Next
From: Claudio Freire
Date:
Subject: Re: Parallel Select query performance and shared buffers