其他 /
正文
开启WSL2时vmmem占用内存过多
2024-01-13 23:29
3102 浏览
评论(0)
字体大小:
装了wsl2+docker后内存使用8G 于是从网上搜了一下有三种方法可以解决, 我用的是限制VM的内存使用 的方法,设置好 .wslconfig 文件后重启wsl 内存占用立即下来了, 长期使用的效果还得后边再看一下 。 看评论有的说不好用 或是说 运行时间长了不好用,这个还得再关注一下 效果如何。
一、限制VM的内存使用
在用户文件夹下通过配置wsl2的.wslconfig文件,来限制wsl2使用的内存的大小
- 按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹
- 新建文件 .wslconfig ,然后使用记事本编辑
- 填入以下内容并保存, memory为wsl2分配的内存上限,可根据自身电脑配置设置
[wsl2]
# 要分配给 WSL 2 VM 的内存
memory=3GB # Limits VM memory in WSL 2GB, also can be set to other values
# 要向 WSL 2 VM 添加的交换空间量,0 表示无交换文件。 交换存储是基于磁盘的 RAM,当内存需求超过硬件设备上的限制时使用。
swap=0
# 一个布尔值,用于指定绑定到 WSL 2 VM 中的通配符或 localhost 的端口是否应可通过 localhost:port 从主机连接。
localhostForwarding=true
# 要分配给 WSL 2 VM 的逻辑处理器数
processors=2 # Makes the WSL 2 VM use two virtual processors, also can be set to other values
设置该文件并重新启动WSL后,不管vmmem内存使用情况如何,仍然会消耗掉限额的内存,但至少它不会再继续增长了,也可以设置为其他值,如512MB、1GB等,即可以将其控制在某个范围之内。
二、关掉WL2 VM
在不使用WSL2时,在PowerShell执行wsl --shutdown
,从而关掉WL2 VM。
三、定期释放cache内存
Linux内核中有一个参数/proc/sys/vm/drop_caches
,是可以用来手动释放Linux中的cache缓存,如果发现wsl2的cache过大影响到宿主机正常运行了,可以手动执行以下命令来释放cache:
echo 3 > /proc/sys/vm/drop_caches
当然也可以设置成定时任务,每隔一段时间释放一次。
本文发布于程序达人 ,转载请注明出处,谢谢合作
有 0 人认为有用
0 评论
共同学习,写下你的评论
程序达人 - chengxudaren.com
一个帮助开发者成长的社区
相关文章