Windows 10 WSL vs. Linux Performance For Early 2018
Back in December was our most recent round of Windows Subsystem for Linux benchmarking with Windows 10 while since then both Linux and Windows have received new stable updates, most notably for mitigating the Spectre and Meltdown CPU vulnerabilities. For your viewing pleasure today are some fresh benchmarks looking at the Windows 10 WSL performance against Linux using the latest updates as of this week while also running some comparison tests too against Docker on Windows and Oracle VM VirtualBox.
The purpose of this article is providing a current look at how the Windows WSL performance is looking relative to "bare metal" Linux systems. For those that missed the past rounds of WSL testing on Phoronix, Microsoft has done a surprisingly good job implementing this Linux system for handling Linux binaries with respectable speed. The main area where WSL has lagged behind in Linux performance has been for I/O, since the file mapping is still done to NTFS, but is an area where Microsoft engineers have been focusing on optimizing more as WSL continues to mature. This round of testing will be particularly interesting since the Spectre and Meltdown mitigation is known to affect I/O performance the most and we haven't done any Windows testing since those vulnerabilities came to light in early January.
The configurations being tested for this article today included:
Ubuntu 16.04 On WSL - Windows 10 Pro x64 with all available updates as of 18 February was the base operating system. WSL was enabled and Ubuntu 16.04 was installed through the Microsoft App Store and all stable release updates were then applied. This run is basically looking at how the current WSL performance is looking for Q1'2018.
OpenSUSE 42.3 On WSL - Microsoft also continues offering openSUSE Leap (and SUSE Linux Enterprise Server) for WSL. This run was done with openSUSE Leap 42.3 with all available stable release updates.
Ubuntu 16.04 On Docker Win 10 - The same Windows 10 setup but now testing Ubuntu 16.04 LTS with all available stable updates while running as a Docker container and having access to all available CPU cores and memory.
Clear Linux On Docker Win 10 - As anyone who sees our routine Linux distribution comparisons know, Intel's Clear Linux distribution is highly-tuned for delivering maximum out-of-the-box performance so it was also tossed into this comparison where supported. Clear Linux is available on Docker and it was tested with all available updates. Again, the lone container had access to all available CPU cores, etc.
Ubuntu 16.04 On VirtualBox Win 10 - Ubuntu 16.04 tested from the same Windows 10 host but now using Oracle VM VirtualBox 5.2.6. The VM had access to all available CPU cores and system resources while was using a 30GB VDI virtual disk.
OpenSUSE 42.3 On VirtualBox Win 10 - OpenSUSE Leap 42.3 then tested with VM VirtualBox under the same conditions.
Ubuntu 16.04 - The bare metal installation of Ubuntu 16.04 LTS Linux for looking at its raw performance potential.
Clear Linux - The bare metal installation of Clear Linux for looking at its raw performance potential and for more broadly showing the optimized Linux potential of the hardware given its aggressive out-of-the-box performance.
openSUSE 42.3 - The bare metal installation of openSUSE Leap 42.3 for looking at its raw performance potential.
There are some missing configurations due to technical issues... There isn't any Clear Linux run via WSL as that is currently not offered/supported. OpenSUSE Leap was attempted for testing with Docker, but unlike Clear and Ubuntu, the container ended up crashing during the testing process. Clear Linux meanwhile was missing from the VirtualBox testing as its kernel was yielding a segmentation fault when booting to the installer.
All of these different configurations were tested from the same exact system: Intel Core i7 8700K (Coffee Lake), 2 x 8GB DDR4-3000 Corsair memory, Samsung 950 PRO 256GB NVMe SSD, ASUS PRIME Z370-A motherboard, and was using the UHD Graphics 630 albeit we were not looking at the graphics performance in this article. The CPU frequency and all other system settings were maintained the same throughout testing; any obvious reported differences in the automated system table come down to just parsing differences on the different platforms, etc.
All of these Windows Subsystem for Linux, Docker, VirtualBox, and bare metal Linux benchmarks were carried out in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.