concurrent IO in postgres?

From: Przemek Wozniak <wozniak(at)lanl(dot)gov>
To: pgsql-performance(at)postgresql(dot)org
Subject: concurrent IO in postgres?
Date: 2010-12-23 17:37:53
Message-ID: 1293125873.3685.91.camel@procyon.lanl.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

When testing the IO performance of ioSAN storage device from FusionIO
(650GB MLC version) one of the things I tried is a set of IO intensive
operations in Postgres: bulk data loads, updates, and queries calling
for random IO. So far I cannot make Postgres take advantage of this
tremendous IO capacity. I can squeeze a factor of a few here and there
when caching cannot be utilized, but this hardware can do a lot more.

Low level testing with fio shows on average x10 speedups over disk for
sequential IO and x500-800 for random IO. With enough threads I can get
IOPS in the 100-200K range and 1-1.5GB/s bandwidth, basically what's
advertised. But not with Postgres.

Is this because the Postgres backend is essentially single threaded and
in general does not perform asynchronous IO, or I'm missing something?
I found out that the effective_io_concurrency parameter only takes
effect for bitmap index scans.

Also, is there any work going on to allow concurrent IO in the backend
and adapt Postgres to the capabilities of Flash?

Will appreciate any comments, experiences, etc.

Przemek Wozniak

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Scott Marlowe 2010-12-23 18:24:43 Re: concurrent IO in postgres?
Previous Message Andres Freund 2010-12-23 17:03:33 Re: Create index on subfield returned by function that returns base type with sub fields