自从装了wsl我这个年迈的电脑就更加吃力,尤其是内存基本上都要占到90%以上,打开任务管理器一看内存一半以上都是被vmmem吃掉了,于是在网上寻找解决办法,并记录优化过程。
文章目录
- 定期执行缓存删除
- 硬限制最大内存
- 使配置生效
- ISSUE
定期执行缓存删除
- 在WSL bash上,执行以下命令,并进入编辑模式
sudo crontab -e -u root
第一次运行会让你选择编译器,我选择了nano,感觉更加友好。
并添加以下行:
*/15 * * * * sync; echo 3 > /proc/sys/vm/drop_caches; touch /root/drop_caches_last_run
*/15 表示将每15分钟执行一次。您可以根据需要更改它
在~/.bashrc
上添加以下行,允许启动cron服务而无需输入root密码,
sudo nano ~/.bashrc
[ -z "$(ps -ef | grep cron | grep -v grep)" ] && sudo /etc/init.d/cron start &> /dev/null
sudo visudo
sudo ALL=NOPASSWD: /etc/init.d/cron start
硬限制最大内存
- 打开文件夹,在地址栏输入
%UserProfile%
,并回车。 - 新建文件
.wslconfig
,并编辑内容:
[wsl2]
memory=4GB
swap=8GB
localhostForwarding=true
使配置生效
要确保所有更改都生效,请在powershell
上执行 wsl --shutdown
。然后重新打开您的WSL终端.
wsl --shutdown
在wsl终端上可以通过查看/ root / drop_caches_last_run
上次修改日期来检查cron作业是否正在相应地运行:
sudo stat -c '%y' /root/drop_caches_last_run
上面设置的十五分钟一次,你可以计时看看有没有记录。
ISSUE
这个问题,在github以上已经大量反馈,点击这里查看issue详情
Enjoy it !
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)