用WSL2的时候发现vmmem这个进程占用了大量内存(20GB),正在执行的任务不可能占用怎么大的内存,所以一定是哪里出了问题。

WSL 2 consumes massive amounts of RAM and doesn’t return it》这issue反映了这个问题,是由于 Linux 的内存缓存机制导致虚假分配了过多的内存给 WSL。

以下两种解决方案:

  • sync; echo 3 > /proc/sys/vm/drop_caches ”,这句命令需要在root用户下执行。“ sudo su ”可以进入root用户。这个是临时的,每次出现内存占用过大就执行一遍。
  • 创建“ %UserProfile%\.wslconfig ”,并设置成下面内容。这个是永久的,这个限制了内存大小。
[wsl2]
memory=6GB
swap=0
localhostForwarding=true

  1. WSL 2 consumes massive amounts of RAM and doesn’t return it
  2. WSL 2 在 Windows 10 Ver 2004 的一些 Bug

发表评论

邮箱地址不会被公开。 必填项已用*标注