wsl2 内存问题

2022-12-30 10:39:25 +08:00
 Cyshall

wsl2 的内存不会自动回收吗? 平常就晚上回家用用,不关机只睡眠,四五天的样子吃了我二十多的 G 的内存。

4103 次点击
所在节点    Windows
30 条回复
qwertty01
2022-12-30 10:48:55 +08:00
同样问题,32G 内存打开 wsl2 直接解决全被占用了。
okrfuse
2022-12-30 10:53:30 +08:00
一样,还有一个问题就是时间不同步,一晚上打开 git 日志直接显示明天
a22271001
2022-12-30 10:54:52 +08:00
.wslconfig 配置文件可以限制内存
alexsunxl
2022-12-30 10:55:24 +08:00
这 b 微软的 win11+wsl2 确实很吃内存。 搞得我插满 4 根 16g 的才感觉勉强够用。
AoEiuV020CN
2022-12-30 10:55:47 +08:00
确实这样,我感觉各种动态内存对 linux 都靠不住,不用的内存会无限缓存,不释放,
我 wsl2 直接在.wslconfig 限死 8G ,
datou
2022-12-30 10:59:24 +08:00
物理机 48G 内存,WSL 里面 htop 只显示 23.4G

还不知道咋改
lwch
2022-12-30 11:01:04 +08:00
限了好像也没啥用,虚拟内存一直跑满,我用了 mem reduct 超额后自动释放
yech1990
2022-12-30 11:05:16 +08:00
50% of total memory on Windows or 8GB, whichever is less; 新版默认就有限制了。
hwdef
2022-12-30 11:09:29 +08:00
wsl+wsa+docker ,128g 内存都不够用。。
Cyshall
2022-12-30 11:10:29 +08:00
@yech1990 #8 哪里看到的阿?
Cyshall
2022-12-30 11:15:45 +08:00
@hwdef #9 wsa 有个缺点就是冷启动太慢了,尤其是跟 wsl2 比
mq4079
2022-12-30 11:25:45 +08:00
wsl 有内存泄露问题,好久没用了不知道巨硬修了没
cubecube
2022-12-30 11:49:36 +08:00
这个问题好像有微软 blog 解释过。Linux 只要你使用过大内存(比如编译了项目) linux 倾向于不释放缓存,这导致 vm 无法精确的判断 linux 到底使用了多大的内存。所以很难主动释放。然后 labalaba 了一堆他们做了啥去尽量释放把内存还给 host ,但是效果也就那样

解决办法前面已经说了,配置文件手动限制下吧,否则 wsl 会占用最多一半的系统内存。
Cyshall
2022-12-30 11:50:58 +08:00
@cubecube #13 有原文链接不? 想看看
TrembleBeforeMe
2022-12-30 11:52:48 +08:00
wsl2 是这样设计的,所以我用 wsl1
charlie21
2022-12-30 11:53:56 +08:00
这个 wsl 问题甚至不是 wsl 的问题
wenzhoou
2022-12-30 12:10:27 +08:00
还好把。32G 只占用到 20G 。docker 里面看到占用了 16G 。
zed1018
2022-12-30 13:44:37 +08:00
有个比较手动的方案是用 rammap empty 一下
zed1018
2022-12-30 13:46:40 +08:00
0attocs
2022-12-30 13:56:33 +08:00
另一个粗暴点的 workaround 是`wsl --shutdown`主动重启,可以搭配使用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/905524

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX