V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cyshall
V2EX  ›  Windows

wsl2 内存问题

  •  
  •   Cyshall · 158 天前 · 2878 次点击
    这是一个创建于 158 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    解决办法前面已经说了,配置文件手动限制下吧,否则 wsl 会占用最多一半的系统内存。
    Cyshall
        14
    Cyshall  
    OP
       158 天前
    @cubecube #13 有原文链接不? 想看看
    TrembleBeforeMe
        15
    TrembleBeforeMe  
       158 天前   ❤️ 2
    wsl2 是这样设计的,所以我用 wsl1
    charlie21
        16
    charlie21  
       158 天前 via iPhone
    这个 wsl 问题甚至不是 wsl 的问题
    wenzhoou
        17
    wenzhoou  
       158 天前
    还好把。32G 只占用到 20G 。docker 里面看到占用了 16G 。
    zed1018
        18
    zed1018  
       158 天前
    有个比较手动的方案是用 rammap empty 一下
    zed1018
        19
    zed1018  
       158 天前
    0attocs
        20
    0attocs  
       158 天前
    另一个粗暴点的 workaround 是`wsl --shutdown`主动重启,可以搭配使用。
    zwy100e72
        21
    zwy100e72  
       158 天前
    sudo -- sh -c "echo 1 > /proc/sys/vm/drop_caches && echo 1 > /proc/sys/vm/compact_memory"

    Memory Reclaim in the Windows Subsystem for Linux 2
    https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-windows-subsystem-for-linux-2/
    lookStupiToForce
        22
    lookStupiToForce  
       158 天前
    以前折腾过很久
    所以后来还是用回了 v 家的 workstation player
    2Broear
        23
    2Broear  
       158 天前
    [wsl2]
    memory=4GB
    swap=8GB
    litguy
        24
    litguy  
       158 天前
    个人更喜欢 WSL1
    lelandsu
        25
    lelandsu  
       158 天前 via iPhone
    能升级物理内存解决的问题就不是问题。
    我笔记本把内存升级到 40G ,再没打开任务管理器看过内存。
    你这么想,解决了 wsl 的你也很难解决像 Android studio 这种软件的内存占用,还有一堆喜报 chrome 套壳的程序
    also24
        26
    also24  
       158 天前
    @lelandsu #25
    我曾经也是这样想的,直到 hyper-v 莫名其妙吃了我 50G 内存 : )
    kokutou
        27
    kokutou  
       158 天前
    不喜欢开 vm ,开了 host 都卡卡的。。。
    我选择 wsl1
    9ine
        28
    9ine  
       157 天前
    用过好几年的 WSL ,现在已经换成 Windows+Linux 双系统了。
    luffy
        29
    luffy  
       154 天前
    我用的 surface + wsl2 + visual studio + jetbrain idea + slack + teams + vscode + wechat + n 个 powershell

    只有 16G 的情况下,还算运行正常。

    我怀疑楼主的问题,可能是操作系统的问题?内存这块是操作系统在管理的?
    hwdef
        30
    hwdef  
       153 天前
    @cubecube
    我感觉跟发行版也有关,我 pve 里有 debian 和 archlinux 的虚拟机,运行一样的东西,archlinux 的内存占用比 debian 大很多。
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   813 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.