在长时间应用 WSL 开发我的项目时, 关上工作管理器,会发现 VmmemWSL 这个过程占用了超多的内存, 并使得咱们的电脑运行变慢,甚至会呈现蓝屏关机。


wsl 内存占用过高

通过查阅 微软对于WSL 内存应用的官网文档, build 20175 版本,之后,windows 零碎默认,WSL 能应用的最大内存为 零碎总内存的 50% , 在这个版本之前的 windows 零碎,能应用的最大内存,不超过零碎的80%。 额, 简略来讲, 就是 近期的 Win 11 零碎,默认 wsl 能应用的最大内存, 为零碎的50% 。 如果不确定, 你的WSL 零碎的内存和 共享内存指定状况,你能够关上powerShell 进入你的 linux 零碎。

输出 如下linux 命令就能查看目前你的零碎内存应用:

free -h --giga

在我零碎上,显示的是如下内容。

这意味着,当你应用WSL2 的时候。 你的零碎内存,间接划分进来了5G 。

当你在应用内存占用较大的利用,如 chrome , idea , webStorm 等很容易引起你的内存告急。

那咱们如何解决这个问题呢?

  • 微软在wsl 2 中,提供了指定配置 wsl 可用内存的方法.

接下来介绍一下,如何配置wsl 2 内存空间的方法。

创立 .wslconfig 文件。

第一种方法:

在资源管理器的地址栏里 输出C:\Users\YourUsername , 查看是否有 .wslconfig 文件。 如果没有, 间接右键创立一个。

第二种方法:

关上powerShell , 进入 wsl 。

应用如下命令编辑:

vi "$(wslpath "C:\Users\YourUsername\.wslconfig")"

在输出命令时, 切记, 把 yourUsername 换成你的windows 用户名。 别间接复制了,我的提供的命令。

在这里,我抉择,我最相熟的 第二种形式。 间接用vi 编辑。

第一次编辑的话。 应该是关上了一个空文件。 如下图所示:

间接 i 键, 开始输出. 在文件里输出如下内容。

[wsl2]memory=3GB

因为我根本就跑node 的运行时。 3 - 5G 就足够用了。 所以限度3G 。

编辑完, config 文件,咱们重启咱们的WSL 零碎。

WSL 的重启方法是间接应用powerShell 命令。

wsl --shutdown

敞开之后。 在次 通过 wsl 进入 。

应用free 命令 验证一下方才的配置是否失效, 如果没胜利。 按上边的步骤在来一此。