限制 WSL2 中 Vmmem 的内存占用

臭大佬 2023-02-10 20:14:10 6925
linux 
简介 vmmem内存占用大,如何限制内存占用?

vmmem内存占用大,原因是什么?

当计算机在使用时,CPU会将需要操作的数据传输到内存中进行操作,然后在操作完成后传递结果。
WSL2(Linux 的 Windows 子系统)即使在不需要时也会保留大量RAM。它可以消耗 Windows 上总内存的 50% 或 8GB,以较小者为准;在 20175 之前的版本上:Windows 上总内存的 80%。
Vmmem 负责虚拟机进程和内存管理。这意味着进程是虚拟机跳动的心脏,Vmmem 的所有活动和应用程序都在此发生。
用户设置具有大量内存和 CPU 的虚拟机是 Vmmem 需要大量内存的主要原因,因为这通常会导致他们消耗所有可用资源。

解决方法

按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹

新建文件 .wslconfig ,如果存在就覆盖,重新配置一个,然后记事本编辑:

# Settings apply across all Linux distros running on WSL 2
[wsl2]
memory=12GB
swap=4GB
localhostforwarding=true

参数解释:
memory:分配给WSL的内存,根据自己的内存去分配哦,我的内存是32G的,我分配了12G
swap:设置交换分区的容量
localhostForwarding:用于指定绑定到 WSL VM 中的通配符或 localhost 的端口是否应可通过 localhost:port 从主机连接。

如果需要更多配置可查看 .wslconfig 的配置设置

WSL 将检测这些文件是否存在、读取内容,并在每次启动 WSL 时自动应用配置设置。

保存文件后,重启 WSL

wsl --shutdown

或者重启计算机也行

查看 linux 内存,进入 linux 输入如下:

vmstat -s