pg_test_fsync
5 seconds per test
O_DIRECT supported on this platform for open_datasync and open_sync.
Compare file sync methods using one 8kB write:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 757.097 ops/sec 1321 usecs/op
fdatasync 883.867 ops/sec 1131 usecs/op
fsync 443.602 ops/sec 2254 usecs/op
fsync_writethrough n/a
open_sync 424.843 ops/sec 2354 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 403.891 ops/sec 2476 usecs/op
fdatasync 828.576 ops/sec 1207 usecs/op
fsync 396.191 ops/sec 2524 usecs/op
fsync_writethrough n/a
open_sync 132.918 ops/sec 7523 usecs/op
Compare open_sync with different write sizes:
(This is designed to compare the cost of writing 16kB in different write
open_sync sizes.)
1 * 16kB open_sync write 276.164 ops/sec 3621 usecs/op
2 * 8kB open_sync writes 183.502 ops/sec 5450 usecs/op
4 * 4kB open_sync writes 90.472 ops/sec 11053 usecs/op
8 * 2kB open_sync writes 34.071 ops/sec 29350 usecs/op
16 * 1kB open_sync writes 10.788 ops/sec 92693 usecs/op
Test if fsync on non-write file descriptor is honored:
(If the times are similar, fsync() can sync data written on a different
descriptor.)
write, fsync, close 201.669 ops/sec 4959 usecs/op
write, close, fsync 176.281 ops/sec 5673 usecs/op
Non-sync'ed 8kB writes:
write 191365.354 ops/sec 5 usecs/op
как по мне - так всё плохо. Сравниваю со своим baremetal, где для PG выделено 10Гб памяти и 3 ядра (nvme ssd):
5 seconds per test
O_DIRECT supported on this platform for open_datasync and open_sync.
Compare file sync methods using one 8kB write:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 20893.062 ops/sec 48 usecs/op
fdatasync 19866.136 ops/sec 50 usecs/op
fsync 19576.059 ops/sec 51 usecs/op
fsync_writethrough n/a
open_sync 20798.804 ops/sec 48 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 10445.704 ops/sec 96 usecs/op
fdatasync 16328.302 ops/sec 61 usecs/op
fsync 16295.395 ops/sec 61 usecs/op
fsync_writethrough n/a
open_sync 10022.182 ops/sec 100 usecs/op
Compare open_sync with different write sizes:
(This is designed to compare the cost of writing 16kB in different write
open_sync sizes.)
1 * 16kB open_sync write 9088.258 ops/sec 110 usecs/op
2 * 8kB open_sync writes 6928.302 ops/sec 144 usecs/op
4 * 4kB open_sync writes 4704.683 ops/sec 213 usecs/op
8 * 2kB open_sync writes 2464.638 ops/sec 406 usecs/op
16 * 1kB open_sync writes 1348.255 ops/sec 742 usecs/op
Test if fsync on non-write file descriptor is honored:
(If the times are similar, fsync() can sync data written on a different
descriptor.)
write, fsync, close 17379.499 ops/sec 58 usecs/op
write, close, fsync 17518.361 ops/sec 57 usecs/op
Non-sync'ed 8kB writes:
write 239796.913 ops/sec 4 usecs/op