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.