2018 即将结束,年末正是各种基准测试对比轮番出炉的时候,通过这些报告,我们可以看到 Linux 性能的各个方面在 2018 是如何发展的。但本文的这份性能对比会更加深入 —— 将研究五个主流 Linux 发行版在过去近三年里所经历的性能变化,而测试对象则是从 2016 年初开始的 CentOS, Clear Linux, Fedora, Ubuntu 和 openSUSE,到目前为止已安装稳定更新的最新版本。
2018 年波及众多 Linux 发行版的 Spectre 和 Meltdown 漏洞严重影响了它们的性能,所以我们不妨看看两年前的发行版和今年的性能对比,最终结果会是如何。
本次对比客观地测试了从 2016 年初到 2018 年底相同硬件上的 Linux 发行版性能 —— 系统会重新加载所有测试的最新版本,以了解性能如何变化。
先来看看本次性能对比中,运行这些 Linux 发行版的机器配置:
- Intel Core i7 5775C
- 板载 Iris Pro 6200 显卡
- MSI Z97-G45 GAMING 主板
- 16GB DDR4 RAM
- 120GB CT120BX100SSD1, Crucial BX100 SATA 3.0 SSD
可以看到,测试所使用的机器配置十分强劲,英特尔酷睿 i7 5775C 仍然是强大的 CPU,特别是其 Iris Pro 显卡和4核/8线程、3.3GHz 基频和 3.7GHz 自动超频。在 2016 年和现在的所有测试中,CPU 都以默认速度(stock speed)运行。唯一的变化是现在使用最新的主板 BIOS,但这也是出于安全原因所必需的考虑,其他配置方式与 2016 年的相同。
以下是在此英特尔酷睿 i7 平台上进行测试的操作系统的概述:
CentOS —— 运行的 CentOS 7 版本是已升级到 7.6 的最新版本, 使用 Linux 3.10 内核作为后端端口。此外,测试对象都使用了相同的 GCC 4.8.5 编译器,而 GNOME Shell 则从 3.14 迁移到了 3.28,默认文件系统为 XFS。在 2016 年,CentOS 默认使用此系统上的 CFQ I/O 调度程序,但现在默认为 deadline 调度程序(deadline scheduler)。至少在 2019 年,我们将看到 EL8 / CentOS 8 用于现代企业版 Linux 堆栈。
Clear Linux —— 英特尔自家的 Clear Linux 平台在从 Linux Kernel 4.4 和 GCC 5.3 迁移到 Linux Kernel 4.19 和 GCC 8.2 时已经进行了许多升级。除此之外,还有无数的其他升级以及不同的决策,如从 CPUFreq 扩展驱动程序迁移到 P-State,使其与其他 Linux 发行版保持一致,但 Clear 仍默认为“性能”调控器(performance governor)。Clear Linux 也是目前测试中唯一一个默认使用 MQ-DEADLINE 的发行版,而 2016 年在这个硬件上使用的是 CFQ。
Fedora —— 从 Fedora 23 升级到 Fedora 29 意味着从 Linux Kernel 4.3 和 GCC 5.3.1 升级到 Linux Kernel 4.19 和 GCC 8.2.1,以及大量其他软件包的更新。Fedora 继续在此硬件上使用 CFQ I/O 调度程序。
Ubuntu —— 从 Linux Kernel 4.4 的 Ubuntu 16.04 迁移到 Linux Kernel 4.18 的 Ubuntu 18.10 是另一个重要的升级。当时 Ubuntu 也默认使用 deadline I/O 调度程序,但现在使用 CFQ。
openSUSE —— openSUSE 测试从基于 Linux Kernel 4.1 的 openSUSE 42.1 Leap 到基于 Linux Kernel 4.19 的 openSUSE Tumbleweed,与 CentOS 7 以外的其他发行版一样,还包括许多软件包的更新。OpenSUSE 也在此时间从 deadline 调度器转换为使用 CFQ,用于 SATA 3.0 SSD 上。
2018 年所有的 Linux 发行版还针对 Spectre 和 Meltdown 漏洞进行了缓解性的更新,要知道这在 2016 年还没有发生。其他操作系统设置/软件包都是默认设置。更多详细信息见下表。请记住,硬件保持不变并使用默认设置;任何报告的变化都可归结为硬件/信息在特定发行版中如何暴露给操作系统。
Phoronix 测试套件提供每次的测试配置文件版本,因此能够使用相同测试软件的相同应用程序/软件包版本以及相同的测试安装重现,在相同的硬件上完成 2016 年与 2018 年的可行对比 —— 以标准化和可重现的方式运行脚本。
测试结果解读
如图所示,在模拟编译过程中进行 CompileBench 测试的情况下,2018 年所有的 Linux 发行版都比 2016 年初的慢。但是对于英特尔的 Clear Linux,它的速度是最快的,并且与其他四个发行版对比,目前的测试结果比任何版本都快得多 —— 事实上,它 2018 年的状态比 2016 年的任何其他发行版都快。而 CompileBench 恰好是受 Spectre/Meltdown 缓解影响的工作负载之一。
对于 Compile Bench 更多繁重的 I/O 初始创建过程,Clear Linux 和 Ubuntu 是唯二逆转运行速度较慢的 CentOS / Fedora / openSUSE 的发行版,但 Clear/Ubuntu 运行的变化很大,使得它们的测试数据不能够十分精确,但无论 Clear Linux 还是 Ubuntu,在这个特定的测试中它们仍然是最快的。而以稳定著称的 CentOS 7 是这个基准测试中最慢的。
使用 Himeno 压力求解器工作负载(pressure solver workload)进行测试,从 2016 年初到 2018 年底之间,观察到性能没有太大变化。唯一值得注意的是 Ubuntu 和 openSUSE 具有略微的性能优势。
在 C-Ray 多线程光线跟踪器下,除了 Clear Linux 之外的所有 Linux 发行版在 2018 年都比较慢,而英特尔发行版的速度稍微快一点,并在第一名的位置处于领先地位。
与 C-Ray 测试类似,但 Smallpt 基准测试呈现的结果则是另一种情况,其中 Clear Linux 与其他发行版相比有很大改进(在 openSUSE 上也看到了很好的变化),并且由于其“强势”的编译器默认值,它仍然比其他发行版快得多。
对于单线程 MP3 音频编码基准测试,CentOS 的变化不大,毕竟两者仍然在同一个 EL7 堆栈上,但对于其他四个 Linux 发行版,在其最新版本中都看到了不错的性能改进。
使用 FFmpeg H.264 进行基准测试,能明显看到,与 2016 年相比,Linux 发行版在 2018 年均呈现放缓的状态,但 Clear Linux 的速度减慢得最少,并且成绩也是可衡量的第一名。
Redis 是受今年 Spectre/Meltdown 漏洞影响的另一个真实案例。因此,与 2016 年相比,结果存在相当大的变化。英特尔的 Clear Linux 发行版依然继续提供了比 CentOS,Fedora,Ubuntu 和 openSUSE 更快的性能。事实上,应用了所有默认缓解补丁的 2018 Clear Linux 性能状态也仍然比其他四个 Linux 发行版更快。
与 2016 年初发布的版本相比,这就是 2018 年底五款主流 Linux 发行版所在的位置。Clear Linux 是当时英特尔硬件上最快的开箱即用发行版,现在仍然保持这种状态,甚至在某些情况下它的领先优势还有所增加。在近三年的时间里。与 SUSE,Ubuntu 和其他企业平台相比,CentOS 7 无疑显示了其“时代性”的痕迹,尤其是在过去一年中,因为这些平台都发布了新的主要版本。不过值得庆幸的是,RHEL 8 / CentOS 8 将在明年首次亮相。
当然,性能不是用户选择发行版时首要的考虑因素,甚至不是最主要的因素,不然怎么解释 CentOS 虽然性能不高,但却有着海量的用户群体。毕竟,在服务器上跑,「稳」更重要。
最后,在 2018 年 Linux 发行版上还运行了一些额外的基准测试,用于了解这些最新的 Linux 发行版在具有 Iris Pro 显卡的英特尔酷睿 i7 Broadwell CPU 上表现如何运行的一些额外测试: