在长时间使用 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 命令 验证一下刚才的配置是否生效, 如果没成功。 按上边的步骤在来一此。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。