Windows、WSL 与 Linux 的习性比较

Phoronix
网站发布了关于
Windows、WSL 和 Linux 的性能基准测试结果。测试的内容包括网络性能、I/O
性能、编程语言运行性能和图形处理性能等。

Windows 的 Linux 子系统,又被称作 WSL 或”Bash for
Windows”,是微软为实现在 Windows 10 以及最近的 Windows Server 上运行
Linux 二进制文件的一个有趣产物。外媒
Phoronix表示,在他们的基准测试中,WSL
通常拥有很高的性能,但它面临挑战的领域是 I/O、存储性能这些方面。

微软在Windows
10中推出了Linux子系统以来,已有多个Linux系统借此在Windows10的Microsoft
Store中上架。据Phoronix报道,在I/O方面,Windows
10上的Linux子系统有一个重要的性能缺陷。

2018
即将结束,年末正是各种基准测试对比轮番出炉的时候,通过这些报告,我们可以看到
Linux 性能的各个方面在 2018 是如何发展的。但本文的这份性能对比会更加深入
—— 将研究五个主流 Linux
发行版在过去近三年里所经历的性能变化,而测试对象则是从 2016
年初开始的 CentOS, Clear Linux, Fedora, Ubuntu 和
openSUSE,到目前为止已安装稳定更新的最新版本。

测试的系统版本为:

WSL中 一直在努力提升其 I/O 性能,因为必须处理 Linux
文件的操作以及跟踪所有相关的元数据,同时通过 Windows NTFS
文件系统进行备份。这种开销对于减慢需要频繁读/写的程序/服务/基准测试影响巨大,而在
CPU/系统工作负载中,WSL 与裸机 Windows 10 性能或各种 Linux
发行版的性能非常相似。

微软在Windows
10中推出了Linux子系统以来,已有多个Linux系统借此在Windows10的Microsoft
Store中上架。据Phoronix报道,在I/O方面,Windows
10上的Linux子系统有一个重要的性能缺陷。

永利官网ylg客户端 1

  • Ubuntu 18.04.3 LTS
  • 永利官网ylg客户端,Ubuntu 19.10 
  • Windows 10 18362
  • Windows 10 18362 WSL
  • Windows 10 19008 WSL
  • Windows 10 19008 WSL2
  • Windows 10 19008 

微软表示,他们拥有专门致力于提升 WSL I/O 性能的开发者。微软的 Rich
Turner 在 GitHub
的问题跟踪器上重申了这一点,“我们正在积极研究的改进列表中,对于磁盘
IO
性能的优化工作有着十分高的优先级。一旦我们有一个可行的解决方案来解决这个问题,我们一定会全力以赴。”

据报道,在CPU/系统的基准测试中,Windows 10
Linux子系统与Ubuntu等发行版系统表现都非常好;但在磁盘读/写方面,Windows上的子系统比硬盘安装版Linux要慢不少。因此,有的用户选择禁用Windows
Defender等杀毒软件,以抵消部分I/O上的损失。

2018 年波及众多 Linux 发行版的 Spectre 和 Meltdown
漏洞严重影响了它们的性能,所以我们不妨看看两年前的发行版和今年的性能对比,最终结果会是如何。

所有的 Windows/Linux WSL 性能基准测试均基于以下硬件环境:

微软尚未说明对 I/O
进行的这些改进何时可能会到来,但我们希望它能够在下一次 Windows 10
更新时及时提供。Windows 10 “Redstone 5”
更新预计将于10月发布,希望我们能够在下一个里程碑之前了解到更多有关 WSL
改进的信息。

对此,微软WSL的主管Rich
Turner发出了一个提醒,称即便是为了WSL的性能,也不应禁用Windows
Defender。他表示,Windows
Defender发现,WSL下运行的某些代码存在着和恶意的Node.js存在依存关系。

本次对比客观地测试了从 2016 年初到 2018 年底相同硬件上的 Linux
发行版性能 —— 系统会重新加载所有测试的最新版本,以了解性能如何变化。

  • MSI X299 SLI PLUS 主板
  • Intel Core i9 7960X CPU
  • 16GB 内存
  • 256GB Intel NVMe SSD
  • 技嘉 Radeon RX 550 显卡

(文/开源中国)    

在谈到关于Linux子系统性能上的问题时,Rich Turner表示:

先来看看本次性能对比中,运行这些 Linux 发行版的机器配置:

所有操作系统和 WSL
实例均在其现成的配置中进行了测试,所有这些基准测试都是使用 Phoronix
Test Suite 进行的。

尽管确实有这种影响,我们现在正在与几个团队合作,为这个性能问题找到有效解决方案。同时,我们建议保持耐心,且不要禁用Defender,也不要排除WSL文件夹或源文件夹。

  • Intel Core i7 5775C

  • 板载 Iris Pro 6200 显卡

  • MSI Z97-G45 GAMING 主板

  • 16GB DDR4 RAM

  • 120GB CT120BX100SSD1, Crucial BX100 SATA 3.0 SSD

永利官网ylg客户端 2

责任编辑:焦旭

可以看到,测试所使用的机器配置十分强劲,英特尔酷睿 i7 5775C 仍然是强大的
CPU,特别是其 Iris Pro 显卡和4核/8线程、3.3GHz 基频和 3.7GHz
自动超频。在 2016 年和现在的所有测试中,CPU 都以默认速度(stock
speed)运行。唯一的变化是现在使用最新的主板
BIOS,但这也是出于安全原因所必需的考虑,其他配置方式与 2016 年的相同。

永利官网ylg客户端 3

永利官网ylg客户端 4

永利官网ylg客户端 5

以下是在此英特尔酷睿 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 堆栈。

永利官网ylg客户端 6

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。

永利官网ylg客户端 7

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 调度程序。

永利官网ylg客户端 8

Ubuntu —— 从 Linux Kernel 4.4 的 Ubuntu 16.04 迁移到 Linux Kernel
4.18 的 Ubuntu 18.10 是另一个重要的升级。当时 Ubuntu 也默认使用 deadline
I/O 调度程序,但现在使用 CFQ。

WSL 过去存在瓶颈的地方是 I/O 性能,通过观察测试数据我们能看到,到了
WSL2,它在 I/O 性能上要优于 WSL,这或许要归功于 WSL2 的 Hyper-V
VM。不过对于某些 SQLite 测试,WSL2 的表现并不算太好。

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 上。

有意思的是,WSL1/WSL2 的性能表现在某些 SQLite 测试中甚至超过 Windows
本身(有可能是由于 SQLite 上游的 fsync
行为在不同平台中表现不一样,也可能是因为某些 fsync 操作未在 WSL
下进行同样的处理)。

永利官网ylg客户端 9

永利官网ylg客户端 10

2018 年所有的 Linux 发行版还针对 Spectre 和 Meltdown
漏洞进行了缓解性的更新,要知道这在 2016
年还没有发生。其他操作系统设置/软件包都是默认设置。更多详细信息见下表。请记住,硬件保持不变并使用默认设置;任何报告的变化都可归结为硬件/信息在特定发行版中如何暴露给操作系统。

虽然 WSL2 提供了比 WSL 更好的 I/O 性能,但仍有改进的空间。

永利官网ylg客户端 11

永利官网ylg客户端 12

Phoronix
测试套件提供每次的测试配置文件版本,因此能够使用相同测试软件的相同应用程序/软件包版本以及相同的测试安装重现,在相同的硬件上完成
2016 年与 2018 年的可行对比 —— 以标准化和可重现的方式运行脚本。

永利官网ylg客户端 13

永利官网ylg客户端 14

发表评论

电子邮件地址不会被公开。 必填项已用*标注