pg_test_fsync — 确定哪一个 wal_sync_method 对 PostgreSQL 最快
pg_test_fsync [option...]
pg_test_fsync 旨在让你对自己的特定系统上最快的 wal_sync_method 是什么有一个合理的了解,并在发现 I/O 问题时提供诊断信息。不过,pg_test_fsync 所显示的差异在实际数据库吞吐量方面可能不会带来任何显著的差别,尤其是因为许多数据库服务器的速度并不受其预写日志的限制。pg_test_fsync 会针对每一种 wal_sync_method 报告以微秒为单位的平均文件同步操作时间,这也可以用来为优化 commit_delay 取值的工作提供参考。
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 命令行参数的帮助并退出。
环境变量 PG_COLOR 指定是否在诊断消息中使用颜色。可能的取值有 always、auto 和 never。