Ubuntu 32-bit, 32-bit PAE, 64-bit Benchmarks
Dec 31, 2009, 20:03 (1 Talkback[s])
(Other stories by Michael Larabel)
[ Thanks to Michael Larabel for
this link. ]
"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."
Complete Story
Related Stories:
- VIA's Linux TODO List... Maybe Look Forward To 2011?(Dec 28, 2009)
- ASUS Eee PC 1201N On Linux(Dec 22, 2009)
- NVIDIA Linux 2009 Year In Review(Dec 22, 2009)
- MuleSoft Updates Tcat Tomcat Java Server(Dec 18, 2009)
- Phoromatic Tracker Launches To Monitor Linux Performance(Dec 17, 2009)
- With Linux 2.6.32, Btrfs Gains As EXT4 Recedes(Dec 14, 2009)
- Nouveau To Go Into Linux 2.6.33 Kernel!(Dec 12, 2009)
- NVIDIA Anti-Aliasing, Linux & Lenvik(Dec 11, 2009)
- Fedora Switching From CVS To Git(Dec 10, 2009)
- Ubuntu 10.04 Is Off To A Poor Performance Start(Dec 09, 2009)