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.
pgsql-performance by date
|Next:||From: Scott Marlowe||Date: 2010-12-23 18:24:43|
|Subject: Re: concurrent IO in postgres?|
|Previous:||From: Andres Freund||Date: 2010-12-23 17:03:33|
|Subject: Re: Create index on subfield returned by function that returns base type with sub fields|