使用pg9.1工具测试fsync性能


在postgreSQL9.1(目前为测试版本)中,增加了一个新的工具:postgresql-9.1beta3/contrib/pg_test_fsync,可以用来测试fsync的性能


1. 官网下载pg(注意,9.1之前的版本不包含这个工具)

2. configure && make (不得不承认,比mysql的配置要简单好多好多好多啊……)

3.cd 到postgresql-9.1beta3/contrib/pg_test_fsync目录下面,可以看到已经生成了一个可执行文件pg_test_fsync

4. 直接 ./pg_test_fsync

$./pg_test_fsync 2000 operations 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 12749.248 ops/sec fsync 12751.280 ops/sec fsync_writethrough n/a open_sync 13565.668 ops/sec 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 8146.540 ops/sec fsync 8314.176 ops/sec fsync_writethrough n/a open_sync 7222.146 ops/sec Compare open_sync with different write sizes: (This is designed to compare the cost of writing 16kB in different write open_sync sizes.) 16kB open_sync write 11368.029 ops/sec 8kB open_sync writes 7019.194 ops/sec 4kB open_sync writes 4662.276 ops/sec 2kB open_sync writes 2564.139 ops/sec 1kB open_sync writes 1315.830 ops/sec 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 10936.611 ops/sec write, close, fsync 11123.223 ops/sec Non-Sync'ed 8kB writes: write 161173.342 ops/sec
默认情况下,pg_test_fsync会做2000次操作来进行统计,由于代码量比较小,也很简单,我们也可以根据需要修改程序:

1.static int ops_per_test = 2000; //执行操作的次数

2.#define XLOG_BLCKSZ_K (XLOG_BLCKSZ / 1024) 其中XLOG_BLOCKSZ代表一个文件块的大小,在PostgreSQL中一般默认为8KB,

我们可以对其简单的修改来满足自己的需求:

22 #define XLOG_BLCKSZ 16384 23 #define XLOG_BLCKSZ_K (XLOG_BLCKSZ / 1024)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值