WSL2(VMMEM)内存占用过大
用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