五年26个版本:Linux系统内核全程回顾
Phoronix.com今天将他们对Linux系统的研究发挥到了极致:从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来的26个Linux内核版本来了个“群英荟萃”!
完成如此庞大规模的横评并不容易,因为每个版本都要跑二十多个测试项目,每个项目又得跑至少三到五遍,总计超过2500次。好在一方面有自动测试套装Phoronix Test Suite,另一方面还有飞快的Intel Core i7-970六核心处理器。
Linux 2.6.12版本内核的时候,操作系统还是Ubuntu 5.10、SuSE 9.3、Fedora Core 4、Mandrake 2006这些老古董,而最终选择的基准系统是Fedora Core 4,并将其放在Ubuntu 10.10 64位系统下的虚拟机内。最新的2.6.37版本尚未发布正式版,本次测试使用的是2010-10-31 Git snapshot。至于2.6.12之前的更老版本,GCC4编译器和它们无法并存,故而没有加入此番测试。
测试平台的其他硬件配置还有:华擎X58 SuperComputer主板、3GB DDR3内存、OCZ Vertex 64GB固态硬盘、GeForce GTX 460显卡。
Linux系统内核这26个版本的具体发布时间依次如下:
2.6.12-2005.6.17
2.6.13-2005.8.29
2.6.14-2005.10.17
2.6.15-2006.1.3
2.6.16-2006.3.20
2.6.17-2006.6.17
2.6.18-2006.9.20
2.6.19-2006.11.29
2.6.20-2007.2.5
2.6.21-2007.4.25
2.6.22-2007.7.8
2.6.23-2007.10.9
2.6.24-2008.1.24
2.6.25-2008.4.17
2.6.26-2008.7.13
2.6.27-2008.10.9
2.6.28-2008.12.25
2.6.29-2009.3.23
2.6.30-2009.6.9
2.6.31-2009.9.9
2.6.32-2009.12.3
2.6.33-2010.2.24
2.6.34-2010.5.16
2.6.35-2010.8.1
2.6.36-2010.10.20
2.6.37-(开发中)
GnuPG:1GB文件加密时间上,2.6.12-29版一直保持稳定,都是10秒钟完成,然后2.6.30突然减速,延长到17秒,并且此后再也没有恢复,应该是源于文件系统方面的变化。
Gcrypt Library:CAMELLIA256-ECB加解密性能维持了惊人的稳定性,所有26个版本都差不多。
OpenSSL:同样没什么明显变化。
NAS Parallel Benchmark(NPB) IS.C:也都差不多,但是最快的2.6.29要比最慢的2.6.12快大约10%。
TTSIOD 3D Renderer:基本都在20FPS上下徘徊,2.6.16/25/26三个版本稍慢一些。
C-Ray:2.6.18表现最好,平均只需87秒钟,2.6.30则是最慢的,耗时长达100秒钟,不过此后几个版本都在慢慢提速。
Crafty:随着内核的成熟,这个开源国际象棋引擎的速度也在加快,最新版比最旧版快了大约6%。
Timed MAFFT Alignment:五年来的性能基本都是那样。
Himeno Benchmark:五年下来速度提升了10%,2.6.30又一次发生突变。
John The Ripper:2.6.12/30出现了短暂的波谷,其他24个版本大同小异。
LAME MP3 Encoding:音频编码性能又一次几乎没变过。
7-Zip Compression:文件压缩方面首次出现了很明显的反复波动,最初的2.6.12 17844MIPS,最高的2.6.23 19376MPS,最低的2.6.30 16175MIPS,最新的2.6.37 17206MIPS。
BYTE Unix Benchmark Dhrystone 2:2.6.30版开始略有提升,但幅度很小。
Loopbakc TCP Network:通过TCP网络回环界面传输10GB的速度变化很有意思。2.6.30版本之前虽然也有大幅度的反复,总体还是比较快的,2.6.20更 是仅需13.7秒钟,最近一年来就明显慢多了,2.6.32一度长达55.8秒钟,而最新的2.6.36/37缩短到了44秒钟,算是略有改善。
Timed Apache Compilation:2.6.30开始骤然提速,从17-18秒缩短到9-10秒,并且之后基本保持稳定。
Apache Benchmark:文件系统相关项目开始就碰到了又一个反复无常。2.6.12作为起点不够快,之后很长时间内明显加速,但到了2.6.25/26跌至 低谷,随后2.6.27爆发了一下,又开始慢慢花落,如今2.6.37和五年前基本相当——转了一圈又回去了。
PostMark:2.6.2x系列的磁盘传输性能成绩惨不忍睹,特别是2.6.29降至冰点几乎为零,但是2.6.30就来了个咸鱼大翻身,此后虽略有退步但已经不同往日。
FS-Mark:对付一千个1MB文件的波动也比较明显,2.6.29/33-36都比较惨,但是最新的2.6.37基本恢复了往日风采。
IOzone:最初几个版本的写入性能还是比较快的,但之后一蟹不如一蟹,2.6.29也再次倒数第一。
IOzone:读取性能相对稳定多了,基本都在200MB/s上下徘徊,2.6.37 204MB/s的速度已经基本是最快的了。
Threaded I/O Tester:2.6.29又一次不堪入目,将之前的努力全部抹杀,之后经过2.6.30-32的恢复、2.6.33-36的倒退,2.6.37算是回归正常,8.15MB/s的速度已经高于平均值。
Parallel BZIP 2 Compression:再次压缩256MB文件,整体非常平稳,彼此差距不到1秒钟。
小结:
这是我们第一次看到如此庞大规模的Linux系统内核测试,结果也让我们开了眼。单凭印象,很多用户和开发人员可能会认为随着Linux系统内核的功能特性越来越丰富、体积越来越庞大,性能应该会逐步倒退,但事实上在大部分情况下这五年来的性能都维持了惊人的稳定,也有不少地方虽然反复升降但是总体来看是呈进步趋势的。
根据测试,整体性能有所改进的项目包括John The Ripper、Himeno、PostMark、FS-Mark、Threaded I/O Tester和代码编译相关等等,明显倒退的则有只有GnuPG、Loopback TCP Network Performance、Ozone,其他都是波澜不惊。
2.6.29、2.6.30无疑是最有趣的两个版本。前者是2.6.2x系列的终结之作,也是2009年的第一 个正式版,带来了Intel内核模式设定、Btrfs文件系统试验性支持、SquashFS集成、WiMAX初步支持、eCryptfs文件名加密等众多 新特性,但不少项目中却是最差劲的,而且落后的不是一星半点。随后的2.6.30又带来了NILFS2和EXOFS文件系统、IEEE 802.11w支持、Tomoyo、LZMA/BZIP2内核镜像压缩、完整管理架构等等,性能上不但一雪前耻,还有了很大的飞跃。接下来的几个版本经常 出现倒退,但整体趋势还是好的,特别是还要几个月才会面世的2.6.37版又有所提速