限制 WSL2 中 Vmmem 的内存占用
简介
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