Five Years Of Linux Kernel Benchmarks: 2.6.12 Through 2.6.37
Fortunately, with the PostMark test, the sustained transactions per second has improved over time after falling to a low point during the Linux 2.6.20 series of releases. With the Linux 2.6.36 kernel we're at 2673 TPS (and 2847 TPS with the Git 2.6.37 code) where as in the Linux 2.6.12 kernel it was at a mere 1450 TPS and fell to less than 1000 TPS between the 2.6.20 and 2.6.30 releases.
While it was a bumpy ride along the way, the FS-Mark test when dealing with 1000 1MB files, is also in a better position with the latest Linux 2.6.37 kernel (there is a nice boost between 2.6.36 and 2.6.37) than where it was at when we began our tests on Linux 2.6.12. Between the Linux 2.6.12 and 2.6.21 releases the FS-Mark performance went from 45MB/s to 67MB/s and currently it's at 56MB/s.
For looking at the EXT3 Linux disk performance when dealing with large file reads and writes we have the reliable IOzone. When using IOzone for a 4GB write with a 64Kb block size, the performance has degraded over time. There are noticeable drops between the Linux 2.6.15 and 2.6.16 kernels, again between Linux 2.6.21 and 2.6.22, and then the most significant one between the 2.6.28 and 2.6.29 kernels. Again though this is something that can be automatically bisected by the Phoronix Test Suite. When running on the Linux 2.6.12 kernel with this EXT3-based virtual machine atop an OCZ Vertex SSD, the write speed was 167MB/s, peaked at 176MB/s with the Linux 2.6.14 kernel, and now with the Linux 2.6.37 kernel it's around 129MB/s.
The 4GB read performance with IOzone using the same block size was not as impacted during the testing process, but there still was some fluctuation. The read performance started out at 194MB/s with the Linux 2.6.12 kernel, then peaked again with Linux 2.6.14 at 209MB/s, and by the time of hitting the Linux 2.6.37 kernel we have reached 204MB/s.