At Phoronix we have been benchmarking the Linux kernel on a daily basis using Phoromatic Tracker, a sub-component of Phoromatic and the Phoronix Test Suite. We launched our first system in the Linux kernel testing farm just prior to the Linux 2.6.33 kernel development cycle and found a number of notable regressions during the past three months. Now with the Linux 2.6.34 kernel development cycle getting into swing, we have added an additional two systems to our daily kernel benchmarking farm. One of the systems is an Atom Z520 system but what makes it more interesting is that the system is using a Btrfs file-system and then the second new system added to the kernel tracker is a 64-bit setup. However, to provide a historical look at the Linux kernel performance, we have ran some fresh benchmarks going back to the Linux 2.6.24 kernel and ending with the recently released Linux 2.6.33 kernel.
Our test system for this historical Linux kernel benchmarking was made up of an AMD Opteron 2384 Shanghai Quad-Core processor, a Tyan Thunder n3600B S2927 motherboard with NVIDIA nForce 3600PRO Chipset, 4GB of ECC Registered DDR2 system memory, a 300GB Seagate ST3300622AS Serial ATA hard drive, and an ATI FirePro V8700 graphics card. This AMD workstation was running Ubuntu 8.04.4 LTS (x86_64) with the GNOME 2.22.3 desktop, X.Org Server 126.96.36.199, GCC 4.2.4, and an EXT3 file-system. For each of the Linux 2.6.24 through 2.6.33 kernels we obtained the 64-bit Linux kernels from the Ubuntu mainline PPA. Besides swapping out the kernels, the system was left in its stock configuration during all of the testing.
Some of the changes introduced in the Linux 2.6.24 kernel include CFS task scheduler optimizations, tickless kernel support for x86_64, and x86 32-bit and 64-bit architecture reunification. This kernel was released in January of 2008. In April of 2008 the Linux 2.6.25 kernel was released and it brought real-time group scheduling, better process memory usage management, RCU pre-emption support, and more. During the summer of 2008 the Linux 2.6.26 kernel made it out with page attribute table (PAT) support for x86 processors, 802.11s draft support, and many other new drivers and improvements. Lockless page cache, block layer data integrity support, and other features were christened with the Linux 2.6.27 kernel. As a Christmas present in 2008 was the Linux 2.6.28 kernel, which marked the stabilization of the EXT4 file-system, integration of the Graphics Execution Manager for Intel GPU memory management, boot tracer support, the introduction of staging drivers, and tons of other changes.
As the first 2009 Linux kernel release was Linux 2.6.29 and it presented Intel kernel mode-setting support, experimental Btrfs file-system support, the mainlining of SquashFS, WiMax support, and many driver updates. Linux 2.6.30 with its Fastboot technology, NILFS2 file-system introduction, file-system performance improvements, and new kernel image compression support succeeded this kernel. Next up was the Linux 2.6.31 kernel with staging ATI kernel mode-setting support, USB 3.0 support, a performance counters sub-system, improved desktop interactivity under memory pressure, and other core changes. The Linux 2.6.32 kernel is what's to be found in Ubuntu 10.04 LTS and other distribution updates this quarter, which boasts Btrfs file-system improvements, various graphics DRM improvements, a CFQ low-latency mode, tracing improvements, and virtualization improvements. Finally, there is the Linux 2.6.33 kernel with its merging of the Nouveau DRM for open-source NVIDIA graphics support, many other graphics DRM improvements, and other optimizations.
For the Linux 2.6.24 through 2.6.33 kernel benchmarking we used the Phoronix Test Suite in conjunction with a number of test profiles ranging from Apache benchmarking to IOzone. On the following pages are our results from the performance testing of the past ten major Linux kernel releases.