3.6-rc3 Ext4 Scalability Measurements


This page contains ext4 performance and scalability data collected from the upstream 3.6-rc3 kernel, and a comparative reference baseline from 3.2. To permit comparisons with other Linux filesystems, the same measurements are made on ext3, xfs, and btrfs. Generally, each filesystem's default mkfs and mount options are used with a few exceptions intended to make for a more useful comparison. These are mentioned in the description of the test system configuration below. The primary goal of this work is to evaluate some of ext4's scalability properties as a function of core and thread count in both journaled and non-journaled configurations.

The benchmarks used are modified versions of the Boxacle ffsb workloads, with adjustments to the original ffsb profiles to run 1 thread, 48 threads (one per CPU), and 192 threads (four per CPU), among other things, to better match them to the 48 core test system.

The data shown in the graphs linked below are from lockstat runs. We collect two sets of lockstat data, and use the one which most closely matched the results from three additional runs made without lockstats. These additional runs help assess the impact of lock statistics collection and run to run variability. Lock statistics collection has a significant effect on most workloads at one thread, depressing throughput by 10 to 20%. It has a much less significant effect at 48 or 192 threads, where the effect is usually indistinguishable from run to run variability.

Test System Configuration

large_file_creates Workload

random_writes Workload

large_file_sequential_reads Workload

random_reads Workload

mail_server Workload