Windows、WSL 與 Linux 的性能對比

  • 2020 年 2 月 19 日
  • 筆記

來源:局長

oschina.net/news/112125/

Phoronix 網站發布了關於 Windows、WSL 和 Linux 的性能基準測試結果。測試的內容包括網路性能、I/O 性能、程式語言運行性能和圖形處理性能等。

測試的系統版本為:

  • Ubuntu 18.04.3 LTS
  • Ubuntu 19.10
  • Windows 10 18362
  • Windows 10 18362 WSL
  • Windows 10 19008 WSL
  • Windows 10 19008 WSL2
  • Windows 10 19008

所有的 Windows/Linux WSL 性能基準測試均基於以下硬體環境:

  • MSI X299 SLI PLUS 主板
  • Intel Core i9 7960X CPU
  • 16GB 記憶體
  • 256GB Intel NVMe SSD
  • 技嘉 Radeon RX 550 顯示卡

所有作業系統和 WSL 實例均在其現成的配置中進行了測試,所有這些基準測試都是使用 Phoronix Test Suite 進行的。

下面看看測試結果:

WSL 過去存在瓶頸的地方是 I/O 性能,通過觀察測試數據我們能看到,到了 WSL2,它在 I/O 性能上要優於 WSL,這或許要歸功於 WSL2 的 Hyper-V VM。不過對於某些 SQLite 測試,WSL2 的表現並不算太好。

有意思的是,WSL1/WSL2 的性能表現在某些 SQLite 測試中甚至超過 Windows 本身(有可能是由於 SQLite 上游的 fsync 行為在不同平台中表現不一樣,也可能是因為某些 fsync 操作未在 WSL 下進行同樣的處理)。

雖然 WSL2 提供了比 WSL 更好的 I/O 性能,但仍有改進的空間。

通過微軟自帶的 Ethr 基準測試進行評估,在網路性能方面,與 Ubuntu 相比,WSL 甚至 Windows 10 本身仍具有相當大的優勢。

在完全由 CPU 決定的工作負載中,WSL/WSL2 的性能表現良好,和裸機 Linux 不相上下。

上圖的性能測試結果顯示,除了在測試 HTTP 時,WSL 下的 Golang 性能基本比 Windows 更好。

上面的數據顯示,在使用相同 OpenJDK 版本的條件下,Windows 10 19008 似乎也比 Windows 10 18362 提供了更好的 Java 性能。而對於 WSL,結果好壞參半。

上面的數據是使用英特爾 OSpray 渲染器進行測試的結果,可以看到 WSL1 比 WSL2 快。

這裡使用英特爾 Embree 測試的數據也很有趣,可以看到,在使用官方 Windows 二進位文件的情況下,Windows 10 19008 的性能要比 18362 的更好,WSL1 的性能也比 WSL2 好,不過它們都要比 Ubuntu 遜色一籌。

這裡使用了英特爾 SVT 影片編碼器進行測試,可以看到,屬於 Windows 10 Insider 預覽版的 Windows 10 19008 表現不錯,和 Ubuntu、WSL/WSL2 不相上下。

從這個測試可以看到,Windows 10 Build 19008 的性能有了較大的改進,而 WSL 的性能則沒有太大的變化。

與 Windows 相比,LuxCoreRender在 WSL/WSL2 中的性能更好。WSL 的性能也比 Ubuntu 稍好。

Himeno 屬於比較重量級的工作負載,可以看到,在這個測試下,裸機 Ubuntu 的性能仍然是最好的。

與較早的 18362 版本相比,Windows 10 19008 顯示出了另一項重大改進 —— 解壓文件的性能。

這裡測試的是程式碼編譯性能,由於 I/O 存在瓶頸,在 WSL 上進行程式碼編譯仍然很慢,而 WSL2 由於採用了傳統的 VM 類型方法,因此它的速度有了一定的提升。

從上圖可以看出,在 WSL 中構建 LLVM 比在 Windows 中構建 LLVM 要快。

上面這些結果顯示了不同的測試條件下各自的表現,這裡不再贅述了,各位可根據自己的需要進行查看。

使用 Blender 進行測試時,WSL/WSL2 可與 Linux 的性能相媲美,而 Windows 10 18362 的表現則稍有落後。

儘管執行了各種各樣的測試,但是如果對在七個不同作業系統上成功運行的所有測試取幾何平均值,可以得出這樣的結論:

  • Windows 10 Build 19008 的總體性能要比 Build 18362 版本好,而 WSL 的性能並沒有太大變化
  • WSL2 比 WSL 的性能確實稍好一些,這是因為在 I/O 或網路活動繁重的工作負載的情況下前者性能要好得多
  • 在這種特殊的 Core i9 7960X 場景下,運行 Ubuntu Linux 的速度總體上比最快的 Windows 配置快 27%

有興趣的朋友可查看這份更詳細的 OpenBenchmarking.org 結果文件,以深入研究這些 Windows / WSL / Linux 基準測試內容。