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版又有所提速

五年26个版本:Linux系统内核全程回顾的更多相关文章

  1. 对Linux系统内核版本稳定性测试介绍

    对Linux系统内核版本稳定性测试介绍 在对 Linux 内核版本稳定性的测试中,需要明确地声明并证明为什么版本是稳定的或者是不稳定的. 然而还没有被证明和证实当前现有的系统范围内的压力测试可以测试 ...

  2. Linux 系统内核的调试

    http://www.ibm.com/developerworks/cn/linux/l-kdb/index.html 本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟 ...

  3. Linux系统内核制作和内核模块的基础

    Linux系统内核制作 1.清除原有配置与中间文件 x86:  make distclean arm:  make distclean 2.配置内核 x86:  make menuconfig arm ...

  4. 让C/C++程序一次编译可以发布到多版本Linux之上

    最近页游开放平台比较多, 每个平台要求的Linux版本各不相同, 这给开发人员部署服务器带来了很大的困难. 在本机Linux编译的程序,发布时即便将依赖的so附带到目标Linux环境,仍然会碰到依赖及 ...

  5. centos7下安装MySQL 5.7.26 二进制版本(免安装绿色版)

    MySQL 5.7.26 二进制版本安装(免安装绿色版) 下载地址 https://downloads.mysql.com/archives/community/ https://cdn.mysql. ...

  6. 合肥.NET技术社区首次线下聚会全程回顾【多图】

    2019年3月16日对于合肥.NET来说是一个特别的日子,因为这是合肥.NET技术社区首次非正式线下聚会!这次聚会受场地限制(毕竟是聚餐的形式),即使换成了小椅子后,最多也只能容纳24个人,所以还有一 ...

  7. Linux系统内核正式进入5.0版本时代

    知名Linux内核开发人员兼维护人员Greg Kroah-Hartman今天宣布,Linux Kernel 4.20内核分支已经结束并督促用户尽快升级至更新的内核分支. Linux Kernel 4. ...

  8. 各版本 linux(转)

    Linux各种版本下载 ftp://ftp.linuxforum.net/ISO/Redhat7.3/valhalla-i386-disc1.iso ftp://ftp.linuxforum.net/ ...

  9. linux系统内核版本升级

    一.查看Linux内核版本命令(2种方法): 1.cat /proc/version 2.uname -a 二.查看Linux系统版本的命令(3种方法): 1.lsb_release -a 即可列出所 ...

随机推荐

  1. [转]Java虚拟机类加载机制浅谈

    Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流.JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎. 虚拟机将描述类的数据从Clas ...

  2. Global.asax 文件说明

    引用 来自  http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...

  3. Java 初始化字段方式和顺序

    Java 初始化字段方式和顺序: 类加载时直接初始化静态字段; 类加载时调用静态方法初始化静态字段; 实例化对象时,在调用构造函数之前代码块中初始化字段; 实例化对象时,在调用构造函数之时初始化字段; ...

  4. [C#参考]属性

    属性和字段不同,属性是一个函数成员:它提供灵活的机制来读取.编写或计算某个私有字段的值. 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法. 这使得可以轻松访问数据,此外还有 ...

  5. Java学习之System.arraycopy()方法

    java.lang.System的静态方法arraycopy()可以实现数组的复制,讲课的老师说这个方法效率比较高,如果数组有成千上万个元素,那么用这个方法,比用for语句循环快不少.System提供 ...

  6. Linux 学习之防火墙配置

    1.安装iptables防火墙 yum install iptables  2. 清除已有的iptables规则  iptables -F  iptables -X  iptables -Z  3.显 ...

  7. JavaWeb核心编程之(三.3)Servlet Init 配置

    Servlet初始化 可以传入一些参数 通过 <init-param>来配置 新建 servletinit项目 新建包 com.xiaoan.test->new Class(Test ...

  8. Android Every day a new function:two

    分享功能: 效果图: 代码(分享TEXT,视频或者图片设置type即可): @Override protected void onCreate(Bundle savedInstanceState) { ...

  9. Android Spinner 下拉列表

    private Spinner spinner ;         private List<String> list ;         private ArrayAdapter< ...

  10. 移动端js插件分享

    分享几个移动端使用的插件,个人感觉挺不错的. 1. TouchSlide1.1 滑动的焦点图  http://pan.baidu.com/s/1i3J6bbB 2. iscroll.js  模拟滚动条 ...