Skip to content

Instantly share code, notes, and snippets.

@vadv
Last active November 9, 2016 15:55
Show Gist options
  • Save vadv/0e3d131a1a8da02dc93cbc24916373e4 to your computer and use it in GitHub Desktop.
Save vadv/0e3d131a1a8da02dc93cbc24916373e4 to your computer and use it in GitHub Desktop.
[root@localhost ~]# /usr/pgsql-9.5/bin/pg_test_fsync -f /mnt/test
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 n/a*
fdatasync 42.349 ops/sec 23613 usecs/op
fsync 41.862 ops/sec 23888 usecs/op
fsync_writethrough n/a
open_sync n/a*
* This file system and its mount options do not support direct
I/O, e.g. ext4 in journaled mode.
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync n/a*
fdatasync 35.389 ops/sec 28257 usecs/op
fsync 37.538 ops/sec 26640 usecs/op
fsync_writethrough n/a
open_sync n/a*
* This file system and its mount options do not support direct
I/O, e.g. ext4 in journaled mode.
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 n/a*
2 * 8kB open_sync writes n/a*
4 * 4kB open_sync writes n/a*
8 * 2kB open_sync writes n/a*
16 * 1kB open_sync writes n/a*
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 38.313 ops/sec 26101 usecs/op
write, close, fsync 42.265 ops/sec 23660 usecs/op
Non-sync'ed 8kB writes:
write 220881.125 ops/sec 5 usecs/op
[root@localhost ~]# /usr/pgsql-9.5/bin/pg_test_fsync -f /mnt/test
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 99.278 ops/sec 10073 usecs/op
fdatasync 88.583 ops/sec 11289 usecs/op
fsync 25.392 ops/sec 39382 usecs/op
fsync_writethrough n/a
open_sync 92.435 ops/sec 10818 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 43.428 ops/sec 23027 usecs/op
fdatasync 84.717 ops/sec 11804 usecs/op
fsync 25.723 ops/sec 38876 usecs/op
fsync_writethrough n/a
open_sync 45.326 ops/sec 22062 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 86.341 ops/sec 11582 usecs/op
2 * 8kB open_sync writes 46.513 ops/sec 21499 usecs/op
4 * 4kB open_sync writes 19.900 ops/sec 50250 usecs/op
8 * 2kB open_sync writes 11.740 ops/sec 85178 usecs/op
16 * 1kB open_sync writes 3.450 ops/sec 289857 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 24.169 ops/sec 41376 usecs/op
write, close, fsync 26.969 ops/sec 37079 usecs/op
Non-sync'ed 8kB writes:
write 249761.000 ops/sec 4 usecs/op
[root@localhost ~]# /usr/pgsql-9.5/bin/pg_test_fsync -f /mnt/test
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 98.297 ops/sec 10173 usecs/op
fdatasync 92.665 ops/sec 10792 usecs/op
fsync 25.699 ops/sec 38911 usecs/op
fsync_writethrough n/a
open_sync 92.606 ops/sec 10798 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 43.686 ops/sec 22891 usecs/op
fdatasync 88.941 ops/sec 11243 usecs/op
fsync 26.813 ops/sec 37296 usecs/op
fsync_writethrough n/a
open_sync 43.934 ops/sec 22762 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 92.035 ops/sec 10865 usecs/op
2 * 8kB open_sync writes 46.953 ops/sec 21298 usecs/op
4 * 4kB open_sync writes 21.296 ops/sec 46957 usecs/op
8 * 2kB open_sync writes 11.698 ops/sec 85485 usecs/op
16 * 1kB open_sync writes 3.211 ops/sec 311467 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 27.437 ops/sec 36448 usecs/op
write, close, fsync 25.744 ops/sec 38845 usecs/op
Non-sync'ed 8kB writes:
write 246679.860 ops/sec 4 usecs/op
[root@localhost ~]# /usr/pgsql-9.5/bin/pg_test_fsync -f /mnt/test
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 89.962 ops/sec 11116 usecs/op
fdatasync 88.591 ops/sec 11288 usecs/op
fsync 34.860 ops/sec 28686 usecs/op
fsync_writethrough n/a
open_sync 88.904 ops/sec 11248 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 45.115 ops/sec 22165 usecs/op
fdatasync 79.985 ops/sec 12502 usecs/op
fsync 35.505 ops/sec 28165 usecs/op
fsync_writethrough n/a
open_sync 44.216 ops/sec 22616 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 79.966 ops/sec 12505 usecs/op
2 * 8kB open_sync writes 47.431 ops/sec 21083 usecs/op
4 * 4kB open_sync writes 20.130 ops/sec 49678 usecs/op
8 * 2kB open_sync writes 11.192 ops/sec 89346 usecs/op
16 * 1kB open_sync writes 3.596 ops/sec 278084 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 32.195 ops/sec 31061 usecs/op
write, close, fsync 35.171 ops/sec 28432 usecs/op
Non-sync'ed 8kB writes:
write 286018.085 ops/sec 3 usecs/op
[root@localhost ~]#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment