While there are a huge number of benchmarks for file systems, the benchmarks in this article will only use iozone. Iozone is a popular benchmark and allows some control over the range of file sizes and block sizes and produces usually pretty good results for “local” file systems (not distributed file system). For this article, an older system with a 2.0 GHz AMD Opteron64 CPU with a base CentOS 5.3 system was used with btrfs v.0.18 in a 2.6.30-rc1 kernel.
A number of options for btrfs were tested with a single disk and with two disks (identical disks). These options range from using default options for making the file system and for mounting the file system (noted as “standard”) to different mount options. The mount options used are:
nodatacow (No data copy on write)
nodatasum (No data sum checks)
compress (Turn on compression)
The results have 4 columns: write, rewrite, read, and reread. Using iozone a 2GB file was written with a 16,384 record size keeping the results out of the range of cache effects. For comparison the results from the previous article on ext4 are included. There are four results from the previous article: Ext3 (default), Ext4 (default), Ext3 (performance), and Ext4 (performance). The table below lists the options for creating the file system (mkfs.btrfs) and for mounting the file system.