fileio resultsThis is the followup to my previous benchmarks of random file I/O performance in the Linux kernel.
This time 2.4.27-rc1 (config) and 2.6.7 (config) kernels were tested. In most of the tests 2.6.7 showed about the same performance as 2.4.27-rc1. However, there are few cases where 2.6.7 performed about 10% slower.
Test setupAll workloads were generated by the SysBench fileio test on an ext3 partition with data=ordered. Before each test the filesystem was remounted. Anticipatory scheduler was used for 2.6.7. LinuxThreads were used as a threading library on both 2.4.27-rc1 and 2.6.7.
HardwareAs in my previous benchmarks, hardware was an AMD Athlon 800 MHz with 640 MB RAM and an IDE hard drive.
For each test three sequential test runs were performed (with filesystem remounted before each run) and the average execution time was used as a result.
First, I tried to vary the total file size and see if increasing this value can lead to regressions in 2.6. The following results were obtained with 16 threads and 128 files.
There is a minor (less than 10%) regression for 4 and 8 gigabytes and a negligible regression in other cases.
Then I tried to vary the number of files. The following results were obtained with 1 thread and 4 GB total file size.
As seen from the results, 2.6.7 outperforms 2.4.27-rc1 on small sets of files, but lags behind on large sets.
Finally, I tried to vary the number of running threads. The following results were obtained with 4 GB total file size and 1 file.
Conclusion2.6.7 performs much better on random file I/O workloads than previous 2.6 kernels but probably there are still some rough edges in I/O scheduler implementation that cause performance regressions on some workloads.