五年26个版本:Linux系统内核全程回顾

时间:2023-01-02 22:03:08

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显卡。

五年26个版本:Linux系统内核全程回顾

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-(开发中)

五年26个版本:Linux系统内核全程回顾

GnuPG:1GB文件加密时间上,2.6.12-29版一直保持稳定,都是10秒钟完成,然后2.6.30突然减速,延长到17秒,并且此后再也没有恢复,应该是源于文件系统方面的变化。

五年26个版本:Linux系统内核全程回顾

Gcrypt Library:CAMELLIA256-ECB加解密性能维持了惊人的稳定性,所有26个版本都差不多。

五年26个版本:Linux系统内核全程回顾

OpenSSL:同样没什么明显变化。

五年26个版本:Linux系统内核全程回顾

NAS Parallel Benchmark(NPB) IS.C:也都差不多,但是最快的2.6.29要比最慢的2.6.12快大约10%。

五年26个版本:Linux系统内核全程回顾

TTSIOD 3D Renderer:基本都在20FPS上下徘徊,2.6.16/25/26三个版本稍慢一些。

五年26个版本:Linux系统内核全程回顾

C-Ray:2.6.18表现最好,平均只需87秒钟,2.6.30则是最慢的,耗时长达100秒钟,不过此后几个版本都在慢慢提速。

五年26个版本:Linux系统内核全程回顾

Crafty:随着内核的成熟,这个开源国际象棋引擎的速度也在加快,最新版比最旧版快了大约6%。

五年26个版本:Linux系统内核全程回顾

Timed MAFFT Alignment:五年来的性能基本都是那样。

五年26个版本:Linux系统内核全程回顾

Himeno Benchmark:五年下来速度提升了10%,2.6.30又一次发生突变。

五年26个版本:Linux系统内核全程回顾

John The Ripper:2.6.12/30出现了短暂的波谷,其他24个版本大同小异。

五年26个版本:Linux系统内核全程回顾

LAME MP3 Encoding:音频编码性能又一次几乎没变过。

五年26个版本:Linux系统内核全程回顾

7-Zip Compression:文件压缩方面首次出现了很明显的反复波动,最初的2.6.12 17844MIPS,最高的2.6.23 19376MPS,最低的2.6.30 16175MIPS,最新的2.6.37 17206MIPS。

五年26个版本:Linux系统内核全程回顾

BYTE Unix Benchmark Dhrystone 2:2.6.30版开始略有提升,但幅度很小。

五年26个版本:Linux系统内核全程回顾

Loopbakc TCP Network:通过TCP网络回环界面传输10GB的速度变化很有意思。2.6.30版本之前虽然也有大幅度的反复,总体还是比较快的,2.6.20更 是仅需13.7秒钟,最近一年来就明显慢多了,2.6.32一度长达55.8秒钟,而最新的2.6.36/37缩短到了44秒钟,算是略有改善。

五年26个版本:Linux系统内核全程回顾

Timed Apache Compilation:2.6.30开始骤然提速,从17-18秒缩短到9-10秒,并且之后基本保持稳定。

五年26个版本:Linux系统内核全程回顾

Apache Benchmark:文件系统相关项目开始就碰到了又一个反复无常。2.6.12作为起点不够快,之后很长时间内明显加速,但到了2.6.25/26跌至 低谷,随后2.6.27爆发了一下,又开始慢慢花落,如今2.6.37和五年前基本相当——转了一圈又回去了。

五年26个版本:Linux系统内核全程回顾

PostMark:2.6.2x系列的磁盘传输性能成绩惨不忍睹,特别是2.6.29降至冰点几乎为零,但是2.6.30就来了个咸鱼大翻身,此后虽略有退步但已经不同往日。

五年26个版本:Linux系统内核全程回顾

FS-Mark:对付一千个1MB文件的波动也比较明显,2.6.29/33-36都比较惨,但是最新的2.6.37基本恢复了往日风采。

五年26个版本:Linux系统内核全程回顾

IOzone:最初几个版本的写入性能还是比较快的,但之后一蟹不如一蟹,2.6.29也再次倒数第一。

五年26个版本:Linux系统内核全程回顾

IOzone:读取性能相对稳定多了,基本都在200MB/s上下徘徊,2.6.37 204MB/s的速度已经基本是最快的了。

五年26个版本:Linux系统内核全程回顾

Threaded I/O Tester:2.6.29又一次不堪入目,将之前的努力全部抹杀,之后经过2.6.30-32的恢复、2.6.33-36的倒退,2.6.37算是回归正常,8.15MB/s的速度已经高于平均值。

五年26个版本:Linux系统内核全程回顾

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. 初识Python(一)

    Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  2. xml提取

    $url = 'http://221.232.141.108/hsdcw/news.xml'; $opts = array( 'http'=>array( 'method'=>" ...

  3. HDU 2291

    http://acm.hdu.edu.cn/showproblem.php?pid=2291 读题读的烦死了,今天果真不适合做题 题意:给两个n*n的矩阵,第一个代表一个人战胜一个人可以得到的经验值, ...

  4. Java中Long与long的区别(转)

    Java中Long与long的区别(转) [本文转载自:http://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html] 转载请联系原 ...

  5. echarts的使用

    ECharts是一个图形展示控件,基于javascript开发出来的,挺好用的,研究了下. 主页地址:http://echarts.baidu.com/index.html API地址:http:// ...

  6. html_day4+css

    表单控件共有的属性: enabled:表示表单控件可用 disabled:表示表单控件被禁用 readonly:表示表单控件只能读name属性值的作用: 需要将表单的数据提交到服务器处理就要写name ...

  7. 使用Setup factory打包WPF

    软件环境 Win10 .NET452 WPF Setup Factory 工具直接百度下啦,关键词:Setup Factory 95 With Sn 打包过程主要参考了以下文章: https://ww ...

  8. 【Python selenium自动化环境配置】4步搞定ChromeDriver版本选择

    很多刚做自动化的小伙伴,会在ChromeDriver版本选择时犯难,看来大家都被坑过,真正掌握独门绝技,都不是难事儿. 看好了主要步骤就4部 1.确定谷歌浏览器版本 2.找到谷歌浏览器版本与Chrom ...

  9. Java 1-Java 基础语法

    一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的 ...

  10. [转]0.python:scikit-learn基本用法

    感谢百小度治哥,该文原地址:here 经Edwin Chen的推荐,认识了scikit-learn这个非常强大的python机器学习工具包.这个帖子作为笔记.(其实都没有笔记的意义,因为他家文档做的太 ...