Filesystems comparison using sql-bench and mySQL (InnoDB)

Some loops in test scripts have been changed to have more accurate values:

Script $opt_loop_count
old value
$opt_loop_count
new value
test-ATIS 100 500
test-big-tables 1000 20000
test-connect 10000 200000
test-insert 100000 10000
test-wisconsin 10 20

Raw results can be found here.

Summary of the results

Because the scale the of the results is different for JFS/XFS, There are two graphes for each test, one without JFS/XFS and one with JFS/XFS (click on thumbnail to zoom)

alter-table

JFS is 2 times slower and XFS 1.5 time slower than other filesystems.
Best filesystem is ext3 with delayed allocation.

ATIS

JFS is 2.1 times slower and XFS 1.6 time slower than other filesystems.
All filesystems are very close, but ext2 and reiserfs seems more efficient.
The data=writeback and mballoc options should be not used in this case (slower).

big-tables

JFS is 3.3 times slower and XFS 2.5 times slower than other filesystems.
Best filesystem is reiserfs. ext3 writeback + mballoc option can improve performances.

connect

ext3 seems faster, but, remember, this is a test for testing the speed of connections and sending data to the client.

create

JFS is 4.5 times slower and XFS 2.1 times slower than other filesystems.
ReiserFS is the best filesystem.

insert

JFS is 3 times slower and XFS 2.2 times slower than other filesystems.
ReiserFS is the best filesystem. Patches are not really usefull to improve performances.

select

JFS is 1.3 times slower and XFS 1.2 time slower than other filesystems.
ReiserFS is the best filesystem. Using patched ext3 generates worst results.

wisconsin

JFS is 3.5 times slower and XFS 2.5 time slower than other filesystems.
ReiserFS is the best filesystem. Patches have no really impacts on results.

Results

alter-table ATIS big-tables connect create insert select wisconsin
ext2_defaults 833.00 124.00 430.00 467.00 383.00 603.00 483.00 192.00
ext3_data=ordered 882.00 125.00 432.00 458.00 390.00 608.00 487.00 195.00
ext3_data=ordered,extents 852.00 125.00 431.00 460.00 389.00 607.00 481.00 194.00
ext3_data=ordered,mballoc,delalloc,extents 818.00 125.00 429.00 463.00 384.00 607.00 487.00 195.00
ext3_data=ordered,mballoc,extents 858.00 125.00 430.00 463.00 390.00 608.00 486.00 195.00
ext3_data=writeback 861.00 125.00 432.00 469.00 384.00 608.00 478.00 195.00
ext3_data=writeback,extents 833.00 125.00 429.00 459.00 383.00 609.00 485.00 195.00
ext3_data=writeback,mballoc,delalloc,extents 819.00 126.00 428.00 464.00 382.00 609.00 479.00 196.00
ext3_data=writeback,mballoc,extents 829.00 126.00 428.00 466.00 383.00 607.00 492.00 195.00
jfs_defaults 1502.00 268.00 1396.00 464.00 1715.00 1773.00 635.00 661.00
reiserfs_defaults 830.00 124.00 426.00 464.00 378.00 600.00 475.00 191.00
xfs_defaults 1215.00 198.00 1065.00 476.00 1028.00 1343.00 578.00 483.00

alter-table

alter-table_sub
Without JFS and XFS
alter-table
alter-table_all
With JFS and XFS

ATIS

ATIS_sub
Without JFS and XFS
ATIS
ATIS_all
With JFS and XFS

big-tables

big-tables_sub
Without JFS and XFS
big-tables
big-tables_all
With JFS and XFS

connect

connect_sub
Without JFS and XFS
connect
connect_all
With JFS and XFS

create

create_sub
Without JFS and XFS
create
create_all
With JFS and XFS

insert

insert_sub
Without JFS and XFS
insert
insert_all
With JFS and XFS

select

select_sub
Without JFS and XFS
select
select_all
With JFS and XFS

wisconsin

wisconsin_sub
Without JFS and XFS
wisconsin
wisconsin_all
With JFS and XFS