2010년 3월 26일 금요일

Ubuntu 32-bit, 32-bit PAE, 64-bit Kernel Benchmarks

Ubuntu 32-bit, 32-bit PAE, 64-bit Kernel Benchmarks

Published on December 30, 2009
Written by Michael Larabel
Page 1 of 5
Discuss This Article

Coming up in our forums was a testing request to compare the performance of Linux between using 32-bit, 32-bit PAE, and 64-bit kernels. This is coming after Linus Torvalds has spoke of 25% performance differences between kernels using CONFIG_HIGHMEM4G and those without this option that allows 32-bit builds to address up to 4GB of physical RAM on a system. We decided to compare the performance of the 32-bit, 32-bit PAE, and 64-bit kernels on a modern desktop system and here are the results.

For this comparison we used Ubuntu 9.10 on a Lenovo ThinkPad T61 notebook running an Intel Core 2 Duo T9300 processor, 4GB of system memory, a 100GB Hitachi HTS7220 SATA HDD, and a NVIDIA Quadro NVS 140M. We were using the Ubuntu-supplied kernels that are based off the Linux 2.6.31 kernel in Ubuntu Karmic. Other packages that were maintained included GNOME 2.28.1, X Server 1.6.4, NVIDIA 195.22 display driver, GCC 4.4.1, and we were using the default EXT4 file-system with all other defaults. With Ubuntu to properly address 4GB or greater of system memory you need to use a PAE kernel as the Physical Address Extension support through the kernel's high-mem configuration options are not enabled in the default 32-bit kernels. CONFIG_HIGHMEM4G is enabled in the default Ubuntu kernel, but the Ubuntu PAE kernel uses CONFIG_HIGHMEM64G (and other build options) for handling up to 64GB of system memory. Of course, with 64-bit addressing there is not this greater than 4GB RAM limitation. Though even with a 32-bit non-PAE kernel the system will only report 3GB of system memory by default due to 1GB of that being reserved for kernel virtual addresses while the 3GB is available to user-space addresses.

The only differences in the kernel configuration between Ubuntu's PAE and non-PAE 32-bit kernels are enabling the CONFIG_X86_CMPXCHG64, CONFIG_HIGHMEM64G instead of CONFIG_HIGHMEM4G, CONFIG_X86_PAE, CONFIG_ARCH_PHYS_ADDR_T_64BIT, CONFIG_PHYS_ADDR_T_64BIT, CONFIG_I2O_EXT_ADAPTEC_DMA64, and disabling CONFIG_ASYNC_TX_DMA. The rest of the kernel configuration is the same. The Linux kernel also requires that the CPU itself supports PAE, but these days that is practically all Intel and AMD processors.

Among the tests we ran on the three Linux 2.6.31 kernels with the Phoronix Test Suite were OpenArena, Apache, PostgreSQL, Bullet, C-Ray, Gcrypt, GnuPG, GraphicsMagick, timed MAFFT alignment, John The Ripper, OpenSSL, x264, and PostMark.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/1.png<!--[endif]-->

With the ioquake3-powered OpenArena game there were virtually no performance differences between the 32-bit, 32-bit PAE, and 64-bit kernels. We had ran other OpenGL-powered tests too through the Phoronix Test Suite and found no significant differences, so we are just sharing one set of numbers in this article to avoid repetition.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/2.png<!--[endif]-->

While the different kernels had not affected the gaming performance with our Core 2 Duo laptop running with 4GB of system memory, the Apache performance was significantly affected. The stock Ubuntu 32-bit kernel had managed to 473 requests per second while the PAE kernel dropped just slightly with its 467 request average, but meanwhile the 64-bit support was many times faster with its 7,989 requests per second count.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/3.png<!--[endif]-->

With the PostgreSQL benchmark, the 32-bit PAE kernel ended up actually doing slightly better than the non-PAE kernel, but the 64-bit Ubuntu kernel came out in front with over a 10% lead.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/4.png<!--[endif]-->

One of the new test profiles in the Phoronix Test Suite is for the Bullet Physics Engine, which we fired up with this round of kernel benchmarking. The two 32-bit kernels led to roughly the same performance with the "3000 Fall" test through Bullet while the 64-bit kernel was nearly 20% faster for this heavy physics processing.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/5.png<!--[endif]-->

The 64-bit kernel remained the best option with Bullet when looking at the 136 Ragdolls test.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/6.png<!--[endif]-->

We compared the ray-tracing performance with the three kernels using the multi-threaded C-Ray. Again, the PAE kernel had not led to any major differences, but switching from 32-bit to 64-bit is where the real speed improvements can be found. The C-Ray finished in less than half the time with the 64-bit kernel compared to the two 32-bit kernels.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/7.png<!--[endif]-->

Using x86_64 Linux also led to a terrific speed-up with the Gcrypt library when looking at the CAMELLIA256-ECB cipher.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/8.png<!--[endif]-->

With GnuPG, there was also an improvement with the 64-bit kernel but not much of a difference between the non-PAE and PAE Ubuntu kernels.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/9.png<!--[endif]-->

The OpenMP-powered GraphicsMagick test sped up by nearly 40% with the 64-bit kernel, but the PAE kernel caused no performance change in either direction.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/10.png<!--[endif]-->

For looking at the computational biology performance, we looked at MAFFT and found it to also perform best under the 64-bit kernel while the 32-bit PAE kernel did not end up having any impact in this CPU-focused test.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/11.png<!--[endif]-->

With the Blowfish performance as measured by John The Ripper, the 64-bit kernel had a 54% speed advantage.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/12.png<!--[endif]-->

No change in the OpenSSL performance between either the 32-bit kernels, but the 64-bit kernel on the Intel Core 2 Duo "Penryn" was approaching two and a half times the speed of the 32-bit kernel.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/13.png<!--[endif]-->

With video processing using x264, the PAE kernel performance just dropped ever so slightly while the 64-bit kernel was again the fastest option.

<!--[if !vml]-->Description:   http://www.phoronix.com/data/img/results/ubuntu_32_pae/14.png<!--[endif]-->

Only a very small drop in performance can be found with the PAE kernel in the PostMark disk test, but the 64-bit kernel was immensely faster.

In the fourteen tests for this article we did not find using Ubuntu's 32-bit PAE kernel to have a dramatic performance impact whether it be positive or negative. Granted, we were using just 4GB of system memory that is common to many desktops, but if using 8GB, 16GB, or even a greater memory capacity the performance penalties are perhaps higher. By far though exhibiting the best performance was the Ubuntu 64-bit kernel that often ended up being leaps and bounds better than the 32-bit kernel. Unless you have technical or business reasons for not migrating to 64-bit Linux with compatible hardware, there is no reason to stick around with a 32-bit kernel and worrying about physical address extension. If you want to run your own kernel benchmarks, give the Phoronix Test Suite a try that offers more than 120 test profiles and 60 test suites.

Discuss this article in our forums or IRC channel or email the author. You can also follow our content on social networks like Facebook, Identi.ca, and Twitter. Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and other benefits.

댓글 없음:

댓글 쓰기