Olá, sou o Leandro Cavalcante!

Speedup WSL by disabling Windows Real-time protection

In this short tutorial, I will help you speedup Windows Subsystem for Linux (WSL) by disabling Windows Real-time protection.

While being helpful detecting some common Windows malwares, in GNU/Linux side it’s so inefficient and actually unhelpful.

Every time you try to access/read/write some file/folder, Windows Defender intercept WSL requisition for antivirus scanning, slowing down things until you hate everything in WSL!

Ubuntu running inside WSL trying to update some packages behind Windows Real-time protection bad guy
Ubuntu running inside WSL trying to update some packages behind Windows Real-time protection bad guy

*Warning: disabling Real-time Security may have some direct impact in yours personal security*. Know what you are doing.

Adding WSL in the Windows Security's Exclusion List

So, first get the UbuntuOnLinux (or your distro of choice) installation path going to %USERPROFILE%\AppData\Local\Packages and lookup for something like CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc.

Copy the entire path from Explorer.exe address bar, then go to:

Settings > Update & Security > Windows Defender > Open Windows Defender Secutiry Central > Protection Against Viruses & Threats > Advanced Config… > Exclusions > Add or Remove > Add > Folder and finally: paste the previous copied path.

High security sometimes means Low performance

Screenshot of Windows Defender Security Center showing Real-time protection as disabled
Screenshot of Windows Defender Security Center showing Real-time protection as disabled

Adding WSL to exclusion list may speedup things a little bit, but not so. There is one more thing bringing your performance down: Window Defender real-time protection.

As noticed by David Tansey in this WSL issue, real-time protection have a HUGE impact in developer tools like Visual Studio build tool and tools like Kubernetes and etc., including WSL.

We will disable it, but be aware: you will may be more vulnerable for some common attacks through malicious script execution.

So, let’s disable:

Using Group Policy (gpedit.exe) to disable real-time protection:

Screenshot of Group Policy Editor (a.k.a. gpedit.msc)
Screenshot of Group Policy Editor (a.k.a. gpedit.msc)

  1. On your Group Policy management machine, open the Group Policy Management Console, right-click the Group Policy Object you want to configure and click Edit.
  2. In the Group Policy Management Editor go to Computer configuration.
  3. Click Policies then Administrative templates.
  4. Expand the tree to Windows components > Windows Defender Antivirus > Real-time protection.
  5. Double-click the Turn off real-time protection setting and set the option to Enabled. Click OK.

I’ve only tested superficially, but I can ensure a great performance speed up.

References:

Configure always-on real-time protection in Windows Defender AV | Microsoft Docs  —  https://docs.microsoft.com/en-us/windows/threat-protection/windows-defender-antivirus/configure-real-time-protection-windows-defender-antivirus

First posted on Medium Speeding up WSL I/O up than 5x fast + saving a lot of battery life & CPU usage, as a reply to Epic Development Environment using Windows Subsystem for Linux

Made with love by @leandrocrs