瀚高数据库
目录
文档用途
详细信息
文档用途
pg_test_fsync是一种用于测试在指定系统上哪一种wal_sync_method最快的命令,该命令还可以在发生认定的 I/O 问题时提供诊断信息。
pg_test_fsync为 wal_sync_method报告以微秒计的平均文件同步操作时间,也能被用来提示用于优化commit_delay值的方法,本文主要用于介绍pg_test_fsync的使用方法。
详细信息
使用语法:
pg_test_fsync [option...]
选项说明:
pg_test_fsync
接受下列命令行选项:
-f
–filename
指定要写入测试数据到其中的文件名。这个文件必须位于和 pg_wal目录所在或者将被放置的同一个文件系统中(pg_wal包含WAL文件)。默认是当前目录中的pg_test_fsync.out。
-s
–secs-per-test
指定每次测试的秒数。每个测试的时间越长,测试的精度就越高,但是它需要更多时间来运行。默认是 5 秒,这允许程序在2分钟以内完成。
-V
–version
打印pg_test_fsync版本并且退出。
-?
–help
显示有关pg_test_fsync命令行参数的帮助并且退出。
使用举例:
[root@node1 bin]# pg_test_fsync -f /tmp/pg_test_fsync.data
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 997.878 ops/sec 1002 usecs/op
fdatasync 1016.510 ops/sec 984 usecs/op
fsync 393.544 ops/sec 2541 usecs/op
fsync_writethrough n/a
open_sync 407.743 ops/sec 2453 usecs/op
Compare file sync methods using two 8kB writes:
(in wal_sync_method preference order, except fdatasync is Linux's default)
open_datasync 515.242 ops/sec 1941 usecs/op
fdatasync 980.880 ops/sec 1019 usecs/op
fsync 387.264 ops/sec 2582 usecs/op
fsync_writethrough n/a
open_sync 199.399 ops/sec 5015 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 383.326 ops/sec 2609 usecs/op
2 * 8kB open_sync writes 229.837 ops/sec 4351 usecs/op
4 * 4kB open_sync writes 115.235 ops/sec 8678 usecs/op
8 * 2kB open_sync writes 57.760 ops/sec 17313 usecs/op
16 * 1kB open_sync writes 28.793 ops/sec 34731 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 450.947 ops/sec 2218 usecs/op
write, close, fsync 447.291 ops/sec 2236 usecs/op
Non-sync'ed 8kB writes:
write 62159.556 ops/sec 16 usecs/op
注:ops/sec–每秒操作数,数值越大性能越高
usecs/op–每个操作平均耗时,数值越小性能越高
根据运行结果,在本次测试环境中wal_sync_method的最优配置为fdatasync。