The performance of PostgreSQL has been suppressed since the introduction of the Linux 2.6.32 kernel atop the EXT4 file-system. When using the nobarrier option the number of transactions per second had nearly doubled. However, even when using this EXT4 mount option, the 222 TPS that it had produced is still significantly less than 560~598 TPS that can be found in pre-2.6.32 kernels. In other words, there are still significant performance penalties in the more recent kernels.
The number of files handled per second with FS-Mark more than tripled when the Linux file-system was mounted with this no barrier option.
As the results in this article show, there are some dramatic performance drops with the EXT4 file-system that have occurred since this evolutionary file-system was marked stable in the Linux 2.6.28 kernel. Most of these drops are occurring as kernel developers work to improve the reliability and safety of this file-system, as we have shared numerous times now. Some of the biggest hits have occurred with the read performance in test scenarios like IOzone between the Linux 2.6.30 and 2.6.31 kernels where the performance was severely dampened. In the Linux 2.6.32 kernel due to EXT4 fsync changes, the PostgreSQL performance was slaughtered with pre-2.6.32 kernels being five times faster.
While there are severe performance drops, there have also been some dramatic gains in the opposite direction as well. With PostMark the number of transactions per second was more than doubled between the 2.6.29 and 2.6.30 kernels, Dbench is improving with the latest Linux 2.6.33 kernel, and AIO-Stress exhibited some nice gains as well beginning with the Linux 2.6.30 kernel.
Worth reading if you are interested in more of these EXT4 performance changes are Autonomously Finding Performance Regressions In The Linux Kernel where a lone EXT4 commit is talked about, EXT4 vs. Btrfs benchmarks on Linux 2.6.32, and earlier EXT4 / Btrfs / NILFS2 benchmarks. Of course, you can repeat these tests yourself using the Phoronix Test Suite. New Btrfs results will also be published with the Linux 2.6.33 kernel later this week.
Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.