Large File Sequential Write Comparison Using FFSB

Test bed:

Kernel: 2.6.22-rc5 and  ext4-patch-queue.git-e88d79aae0d7aceb54bb3fe7868bb4084f4d557e (update of June 26, 2007)
Partition size: 2 TB (IBM DS4100 Storage System with 400GB SATA 7200rpm disks)
IO scheduler: CFQ

Tests are done on a bi-Xeon machine with 2G of RAM and with hyper-threading enabled (-> 4 CPUs).

processor      : 4
vendor_id      : GenuineIntel
cpu family     : 15
model          : 4
model name     : Intel(R) Xeon(TM) CPU 2.80GHz
cpu MHz        : 2793.078
cache size     : 1024 KB
bogomips       : 5586.59

#hdparm -t /dev/sde

/dev/sde:
 Timing buffered disk reads:  332 MB in  3.00 seconds = 110.51 MB/sec

Synopsis:

FFSB filesystem benchmarking software 5.1 available at
http://sourceforge.net/projects/ffsb/

FFSB is a multi-threaded filesystem performance measurement tool. For our tests, we define three profiles which only differ in the number of threads (4, 16 or 64).
Only one operation is defined (create) as we want to compare large file sequential write between different filesystems.

4-thread profile:
num_filesystems=1
num_threadgroups=1
directio=0
time=300

[filesystem0]
        location=/mnt/test/
        num_files=0
        num_dirs=0
        max_filesize=1073741824
        min_filesize=1073741824
[end0]

[threadgroup0]
        num_threads=4
        write_blocksize=65536
        create_weight=1
[end0]

24 1-GB files are created in the 4-thread test case, 32 1-GB files in the 16-thread test case and 64 1-GB files in the 64-thread test case.
We collect the throughput scores and the CPU utilization values (User + System) given by ffsb output. Each test is run 5 times.

The partition used is formated with mkfs and mounted with appropriate options before each run.
Filesystems and options are:


filesystems mkfs options
mount options
1
ext3
data=writeback
2
ext4   -I 256
data=writeback,extents,delalloc
3
xfs

defaults


Results

The following table summarizes the results for each filesystem. All numbers represent the average value of three tests.




       ext3   
ext4+extents+delalloc
    xfs      

4 threads
Throughput
MB/sec
68.2
74.7
66.2
Percent CPU usage
46.3
18
18.5

16 threads
Throughput
MB/sec
69.4
75.9
65
Percent CPU usage
47.2
18.4
21.2

  64 threads
Throughput
MB/sec
72.1
75.1
59.1
Percent CPU usage
59.8
19.8
24


The graphs below are obtained using the previous results.