Win10 Linux 子系统(WSL)缓慢及卡顿的解决方法

Windows 10 Linux 子系统 (Windows Subsystem for Linux, WSL)允许在windows内建Ubuntu系统并使用Bash命令,极大地方便了用户特别是开发者。

但是,笔者在使用WSl时发现奇慢,卡顿非常严重。
比如说在PowerShell中启动Ubuntu,竟然需要30秒以上;Apt-get更是慢的惊人,半小时以上甚至有时候直接卡死。

笔者通过以下方法解决了这个问题:

关闭 Antimalware Service Excutable

Antimalware Service Excutable (ASE) 是 Windows 内置的安全防护软件,在运行WSL时,可以看到ASE在后台运行占用CPU。

ASE阻碍WSL

因此我们修改注册表把它关掉。

注意:关闭ASE会造成一定的安全风险,要慎重。

操作步骤:

  1. 按Win+R打开运行对话框,输入 regedit 点击确定打开注册表管理器;
  2. 在左侧找到 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender 目录;
  3. 在窗口左侧右击 Windows Defender ,选择 “新建”, 创建一个 DWORD 键值;
  4. 键值名称为 DisableAntiSpyware , 其值设置为 1;
  5. 重启计算机。

参考:《How to kill “Antimalware Service Executable”》

卸载360安全卫士与360杀毒

实话说360安全卫士与360杀毒都是非常好用的防护软件,这里卸载实属迫不得已。

另一个挡在WSL前面的进程是“360安全卫士主动防护”,我尝试将WSL加入到360木马防护白名单,但是没有改善。
不得已将360安全卫士与360杀毒卸载了用别的杀毒软件代替。

希望以后360会针对WSL做优化,那时候再回来用。

结果和感想

经过以上操作,WSL健步如飞。

作者不保证这些方法适合所有用户。
遇到WSL缓慢或卡顿的读者还是要根据任务管理器中各进程的CPU占用率,
自己分析阻碍WSL运行的进程,并采取相应的措施。