On Thu, Aug 08, 2013 at 09:13:04AM -0700, John Williams wrote: > Phoronix periodically runs benchmarks on filesystems, and one thing I > have noticed is that btrfs always does terribly on their fio "Intel > IOMeter fileserver access pattern" benchmark: > > http://www.phoronix.com/scan.php?page=article&item=linux_310_10fs&num=2 > > Here, btrfs is more than 6 times slower than ext4, and about 3 times > slower than XFS. > > Lest we attribute it to an unavoidable downside of COW filesystems and > move on...no, we cannot do that, because ZFS does well here -- btrfs > is about 6 times slower than ZFS! > > Note that btrfs does quite well in the other Phoronix benchmarks. It > is just the fio fileserver benchmark that btrfs has problems with. > > What is going on here? Why is btrfs doing so poorly?
So the reason this workload sucks for btrfs is because we fall back on buffered IO because fio does not do block size aligned writes for this workload. If you add ba=4k to the iometer fio file then we go the same speed as xfs and ext4. Not a whole lot we can do about this since unaligned writes means we have to read in pages to cow the block properly, which is why we fall back to buffered. Once we do that we end up having a lot of page locking stuff that gets in the way and makes us twice as slow. Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html