Обсуждение: WAL performance with wal_sync_method = open_sync

Поиск
Список
Период
Сортировка

WAL performance with wal_sync_method = open_sync

От
Tatsuo Ishii
Дата:
Hi,

I'm playing with wal parameters and found that wal_sync_method =
open_sync enormously enhance the performance on my machine. Without it
(using default fsync) I got only 90 tps at the best using pgbench (-s
2). However if I set wal_sync_method = open_sync, I get ~200 tps. I
have checked PostgreSQL uses O_SYNC flag when it opens WAL log files
using strace. Can anybody tell me why? I am afraid this is just a
dream:-) Linux kernel 2.2.17.
--
Tatsuo Ishii


Re: WAL performance with wal_sync_method = open_sync

От
Tom Lane
Дата:
Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> I'm playing with wal parameters and found that wal_sync_method =
> open_sync enormously enhance the performance on my machine. Without it
> (using default fsync) I got only 90 tps at the best using pgbench (-s
> 2). However if I set wal_sync_method = open_sync, I get ~200 tps.

Wouldn't surprise me.  The performance of the fsync method sucks on
my system (HPUX 10.20) as well.  AFAICT HPUX and Linux 2.2.x are not
very smart about fsync on large files --- they scan all the kernel
disk buffers for the target file to find the dirty ones.  O_SYNC
avoids this scanning.

I hear Linux 2.4.* is smarter about doing fsync, so it probably has
fsync as fast or faster than O_SYNC.
        regards, tom lane