应读者要求,Phoronix.com近日对Linux内核进行了一次特殊的性能测试,对比了32位、32位加物理地址扩展(PAE)、64位三种不同模式的表现。Linux系统之父Linus Torvalds此前曾经说过,在开启和关闭CONFIG_HIGHMEM4G(可让32位系统支持4GB物理内存)的系统内核之间存在25%的性能差异。这里就来验证一番。
本次测试采用联想ThinkPad T61笔记本和Ubuntu 9.10系统,硬件配置包括Core 2 Duo T9300处理器、4GB内存、 日立100GB HTS7220 SATA硬盘、NVIDIA Quadro NVS 140M显卡,系统和软件配置保持默认,包括Linux 2.6.31 Kernel内核、GNOME 2.28.1桌面环境、X Server 1.6.4、NVIDIA 195.22显卡驱动、GCC 4.4.1编译器、EXT4文件系统。
Ubuntu 32位内核默认开启了CONFIG_HIGHMEM4G,但PAE模式是关闭的,这样在系统配置4GB内存的时候会有1GB保留给内核虚拟空间,用户实际 可用的只有3GB,而Ubuntu PAE内核使用的是CONFIG_HIGHMEM64G,能处理最多64GB内存。当然64位内核是不存在这种内存寻址空间局限的,也是未来大势所趋。
测试中,Ubuntu 32位PAE模式开启了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,并关闭 CONFIG_ASYNC_TX_DMA,其他均与32位非PAE模式一致。
14项测试下来,我们发现Ubuntu使用32位普通内核或者32位加PAE模式内核完全没有任何性能差异,抛去误差因素之后得分全部一致。当然,这里使用的内存只有4GB,是目前高端用户的常见配置,或许加到8GB、16GB乃至更多之后能看到一些性能上的区别。
同时也可以看出,64位内核的性能优势非常明显,出去第一项《OpenArena》(雷神之锤3竞技场的开源内容包)游戏之外全部居于领先,游戏时候幅度甚至非常吓人(Apache测试中就达到了17倍),所以除非有技术原因或者环境限制,大内存用户就没必要在32位内核与PAE模式上纠结了,直奔64位才是王道。