Hi,
Some months ago, I ran some (probably naive) benchmarks looking at how
pgbench performed on an identical system with differing filesystems. (on
Linux).
Since then the kernel-level version of ZFS became usable, and there have
been improvements to btrfs, and no doubt various updates in the Linux
kernel and PostgreSQL that should help performance.
I ran the tests on Ubuntu 11.04 with Pg 9.0 first, then upgraded the
system to Ubuntu 11.10 (beta) with Pg 9.1 and ran them again.
The latter combination showed a considerable performance improvement
overall - although I didn't investigate to find out whether this was due
to kernel improvements, postgres improvements, or virtio improvements.
The results are measured in transactions-per-second, with higher numbers
being better.
Results:
ext4 (data=writeback,relatime):
natty: 248
oneiric: 297
ext4 (data=writeback,relatime,nobarrier):
natty: didn't test
oneiric: 1409
XFS (relatime):
natty: didn't test
oneiric: 171
btrfs (relatime):
natty: 61.5
oneiric: 91
btrfs (relatime,nodatacow):
natty: didn't test
oneiric: 128
ZFS (defaults):
natty: 171
oneiric: 996
Conclusion:
Last time I ran these tests, xfs and ext4 pulled very similar results,
and both were miles ahead of btrfs. This time around, ext4 has managed
to get a significantly faster result than xfs.
However we have a new contender - ZFS performed *extremely* well on the
latest Ubuntu setup - achieving triple the performance of regular ext4!
I'm not sure how it achieved this, and whether we're losing some kind of
data protection (eg. like the "barrier" options in XFS and ext4).
If ext4 has barriers disabled, it surpasses even ZFSs high score.
Oddly, ZFS performed wildly differently on ubuntu 11.04 vs 11.10b. I
can't explain this. Any ideas?
Cheers,
Toby