Windows 10 May 2020 中WSL 與WSL2 的性能比較
科技媒體Phoronix 對Windows 10 May 2020 中 WSL 和WSL 2 的性能進行了測試,參與測試的發行版為Ubuntu 20.04 on WSL/WSL2 ,以及 Ubuntu 20.04 LTS,均被安裝在除Windows 之外的電腦裸機中。
本次測試使用的電腦硬件設備是Intel Core i9 10900K (Comet Lake) CPU,搭配2 x 8GB DDR4-3200的內存、三星 970 EVO 250GB NVMe SSD硬盤、技嘉Z490 AORUS MASTER和Radeon RX 5700 XT顯卡。具體的測試環境如下:
通過Phoronix 測試套件,共進行了幾十項不同的基準測試。測試結果如下:
從上圖的測試結果可以看到,在進行繁重的CPU工作負載時,如機器學習LC0國際象棋基準測試和N AMD測試等,WSL2綜合表現是最好的。在NAMD測試中,WSL與WSL2的性能一樣,比Ubuntu還稍快一些。在LC0測試中,WSL2性能更快。尤其是LC0測試中使用Eigen後端的場景,WSL2的性能甚至略微領先於Ubuntu本身——可能是由於Windows提供了更好的電源管理行為或類似行為。
上圖是測試一些Java 工作負載的結果,這裡明顯看出了WSL2 的性能比WSL 更好。測試使用的是OpenJDK,性能最好的是裸金屬版本的Ubuntu 20.04。
在使用部分應用程序進行測試時,罕見地看到WSL 的性能比WSL2 更好。不過從這項測試的總體結果來看,WSL/WSL2 的性能也非常接近裸金屬版本 Ubuntu 20.04 的性能,三者相差無幾。
上面這幾項測試也看不出三者之間的性能差距,因為整體來看都非常不錯。但如果細看的話,裸金屬版本的Ubuntu 20.04 還是略佔上風。
這裡的測試結果顯示,使用另外一些程序測試時,WSL2 的性能確實略微超過了Ubuntu 20.04 本身。
上圖的測試結果反映了在 I/O 操作方面的性能。這正是WSL 的短板,其性能較差的地方剛好包括I/O 操作,剛問世時這個缺點曾被不少用戶詬病。到了WSL2,它採用了更類似於虛擬機的方式,使得I/O 吞吐量大大提升。WSL2 的代碼編譯性能甚至與Ubuntu 20.04 相差無幾。
對於可能因為某種原因而不得不使用Windows 10 的用戶來說,WSL2 總體上至少在每個工作負載中都表現得”足夠好”。即使是在各種內核 micro-benchmarks 測試中,WSL2 也基本上與Ubuntu 20.04 及其Linux 5.4 內核持平。
上圖反映的是 socket activity 和上下文切換方面的性能,WSL2 由於架構的改變,其性能比WSL 和Ubuntu 20.04 都好很多。
上圖反映了在大多數純CPU bound 的工作負載場景中,比如渲染器,在WSL/WSL2 上都表現得十分出色。
Facebook 的RocksDB 數據庫在WSL2 和Ubuntu 20.04 LTS 之間的性能表現相似,而在 WSL 中,糟糕的I/O 性能導致了糟糕的結果。
即使是在WSL2 中使用Git,也比WSL 有了巨大的速度提升。
本次測試總共包含69 項測試。Ubuntu 20.04 LTS 贏得了60% 的測試,這就意味著出現了一個有趣的結果,40% 的測試中WSL/WSL2 比Ubuntu 20.04 LTS 本身更快,儘管通常是以微弱的優勢勝出。
當將三者的69項基準測試結果的幾何平均值進行比較時,WSL2比WSL的性能高出大約21%,而Ubuntu 20.04的速度僅快8%。WSL2由於解決了WSL的主要瓶頸,擁有了更快的I/O。更值得關注的是,WSL2的性能已非常接近Ubuntu本身的性能。通過 OpenBenchmarking.org 查看全部69項基準測試。