跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • wsl2 的内存占用真是有够离谱的
未分類
2021 年 2 月 9 日

wsl2 的内存占用真是有够离谱的

wsl2 的内存占用真是有够离谱的

資深大佬 : danytdlemon1900 2

真正的内存怪兽,加多少内存吃多少内存
加了重启、清存储逻辑,还是卡,之前 16G 的时候吃掉 8 个 G,现在加到 32G 一口吃掉 15G,
加了最大限制就开始卡,一副喂不饱的样子,我现在就像个过了 35 走下坡路的中年男人,每天一开电脑看见进程里面 Vmmem 喊饿我就头疼,加上 Chrome 这两兄弟赖在我电脑里混吃混合,开发体验逐日下降。
有无好兄弟有好解法 QAQ
大佬有話說 (81)

  • 資深大佬 : toptyloo

    我放弃了,直接还用 WSL 了,额外需求直接虚拟机。

  • 資深大佬 : xiaoshouchen

    我限制了 2 个 G,用 Docker,使用体验还行

  • 資深大佬 : chenqh

    直接 vagrant 吧,简单粗暴,经考验

  • 資深大佬 : learningman

    有吗。。。我 4G 的 Surface Pro 4 开着 WSL2 都能抗一抗

  • 主 資深大佬 : danytdlemon1900

    @toptyloo 天下苦软软久矣,巨硬什么时候能让我们 wsl 用户硬一点

  • 主 資深大佬 : danytdlemon1900

    @learningman 可能我的项目比较重?

  • 主 資深大佬 : danytdlemon1900

    @chenqh 感谢指路,去瞄一眼

  • 資深大佬 : chenqh

    @danytdlemon1900 就是要网号

  • 資深大佬 : liuxey

    早日 mac

  • 主 資深大佬 : danytdlemon1900

    @liuxey 个人用 mac 喜滋滋,公司项目比较特殊,一般配置的 mac 还真跑不动 QAQ

  • 資深大佬 : xiri

    @danytdlemon1900 你的项目重的话内存占用高这不是挺正常的吗。
    刚刚看了下我的,不在里面跑东西的话,同时打开 Debian10 和 Ubuntu20.04 ,Vmmem 这个进程也才占用 300M 内存

  • 資深大佬 : chenqh

    @xiri 怎么可能才那么点内存

  • 主 資深大佬 : danytdlemon1900

    @xiri 不能吧,你家 vmmem 怎么这么亲切,我项目重一点但是肯定用不到这么多,这情况肯定是占了内存没还我,你这个占用率也太友好了

  • 資深大佬 : litujin1123

    好像会有不释放内存的情况,前两天,都没跑啥,直接吃了大半内存,加上 cpu100%。整个机器卡死了

  • 資深大佬 : BeautifulSoap

    lz 的问题应该不在 wsl2
    wsl2 在设了最大内存限制后,内存上的行为和普通虚拟机没区别
    目测主在 wsl2 里跑的东西有内存泄漏或在干其他什么非常吃内存的事情,这个你放到无论哪个虚拟机或者甚至宿主机里都一样,建议 lz 先排查下是什么东西那么吃内存

    ps:同时运行 wsl2 的多个发行版,他们的内存上限是公用的,同时运行多个发行版的人需要把上限设高点

  • 資深大佬 : caixiaomao

    为什么我限制之后直接蓝屏了 就跑个 docker 而已 wsl2 的内存占用真是有够离谱的

  • 資深大佬 : xiri

    https://s3.ax1x.com/2021/02/05/yGV076.jpg
    刚截的图,就只是同时打开了两个,没有在里面运行任何东西

  • 資深大佬 : xiri

    @chenqh
    @danytdlemon1900

  • 資深大佬 : neutrino

    @danytdlemon1900 我用来 php 开发,nmp 那一套,再跑个 vscode server,大概 400M 。系统是 debian 9

  • 資深大佬 : podel

    @BeautifulSoap
    可以限制 WSL2 的内存使用。
    WSL2 吃内存的问题是,Linux 下面的 FileCache 会一直吃内存,虽然这部分内存能被 Linux 使用,但是 VM 认为内存不够了,系统又自动分配内存。于是就这样子 内存越吃越多。 一定程度上来说,可以调整 Linux 的 FileCache 策略也能解决。

  • 資深大佬 : zwy100e72

    试试 wsl 内 root 用户执行 `echo 1 > /proc/sys/vm/drop_caches` [1] ;试试限制最大使用量 [2] ;试试加内存到 64 GB

  • 主 資深大佬 : danytdlemon1900

    @xiri so charming 羡慕

  • 主 資深大佬 : danytdlemon1900

    @BeautifulSoap 是个方向,容我检查一下项目

  • 主 資深大佬 : danytdlemon1900

    @zwy100e72 64G ?

  • 資深大佬 : sky96111

    启动我只占用 130mb,除去编译时一般也就占用 800mb,但 wsl2 和 hyper-v 一样,动态内存大小不会主动释放,需要 wsl –shutdown 才能释放。不过占用了那么多内存挺离谱的…我觉得还是项目有内存溢出

  • 資深大佬 : sky96111

    内存泄漏…

  • 資深大佬 : XIVN1987

    坚持 WSL1 100 年不动摇
    若对 WSL2 某些功能有需求,,不如装个虚拟机,,

  • 主 資深大佬 : danytdlemon1900

    @sky96111 定期 wsl –shutdown 已经成为我的日常,项目内部应该也是有些问题

  • 資深大佬 : neutrino

    @danytdlemon1900 我用 wsl –shutdown 来解决 localhost 不能访问的问题

  • 資深大佬 : dawnh

    有几个原因会导致 Linux 占着内存不释放,WSL2 加了 Reclaim 内存功能,看一下这篇: https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-windows-subsystem-for-linux-2/

  • 資深大佬 : love

    为啥不直接上真 linux 做开发呢?

  • 資深大佬 : mrxun1998

    正常使用,500 多 m

  • 資深大佬 : faust24601

    hyper-v 它不香吗

  • 資深大佬 : systemcall

    wsl2 理论上会自动把占用的内存释放一些给 Windows,但是 Windows 真的抢不过 WSL2
    感觉虽然 wsl2 是跑在 Windows 里面的,实际上已经反客为主了,是这台电脑的真正主人

  • 主 資深大佬 : danytdlemon1900

    @XIVN1987 坚定地原教旨主义彳亍,不过这个体验改天找个闲的时候我也试试退版本回去重配个环境吧

  • 主 資深大佬 : danytdlemon1900

    @dawnh 学习一哈

  • 資深大佬 : Nich0la5

    我现在轻的在 wsl 跑跑,重的我还有台物理机远程过去了

  • 資深大佬 : royzheng

    %UserProfile% 目录下加.wslconfig 文件限制使用内存,这都不知道???

  • 資深大佬 : lz0755

    wsl2 的月经贴,把内存当 cache 用还不主动释放
    限制内存或者 nocache

  • 資深大佬 : cheng6563

    我也滚回 wsl1 + 虚拟机了

  • 主 資深大佬 : danytdlemon1900

    @royzheng 加了也是一样的,这要能那么见效快也不至于月经贴吐槽了

  • 資深大佬 : BeautifulSoap

    @podel 所以直接限制 wsl2 的内存上限不就行了,wsl2 之所以内存一直膨胀是因为基于 hyper-v,而 hyper-v 有个功能是“动态内存”,即虚拟机要多少内存给多少内存,没有上限。一般开 hyper-v 下的 linux 虚拟机是要直接关了这个功能的,要不然 linux 吞了内存 hyper-v 也不会释放

    wsl2 可以编辑下.wslconfig 文件关了这功能给整个 wsl2 添加一个内存占用上限

  • 資深大佬 : neoblackcap

    @systemcall wsl2 跟 windows 是同一个级别的,因为 wsl 是用 hyper-v 的技术。最底下才是 hypersivor,他们两个都是在 hypersivor 上面的。

  • 資深大佬 : lerry

    我从 wsl2 换到 hyper-v 虚拟机了,主要是网络问题,还有 systemd,hyper-v 发现了个坑,虚拟机开了动态内存,就跑了几个 node 程序,有时候突然系统就卡了,风扇声音变大,发现 64g 内存都给我吃完了,关了动态内存,目前还好

  • 資深大佬 : snowlyg

    http://bbs.pcbeta.com/viewthread-1829766-1-1.html

  • 資深大佬 : rioshikelong121

    确实离谱, 我的最高占用 9 G 。。 随便跑跑 前端应用也有 4,5G 。

  • 資深大佬 : herozzm

    wsl 也要安装一个子 linux,为什么不用 hy 呢

  • 資深大佬 : felixcode

    用的 Linux 桌面,从来不用操心这些东西

  • 資深大佬 : azkaban

    哥你跑啥了,我也 wsl2,32 内存,一直就占 3g 以下

  • 資深大佬 : Bunnyranch

    好巧 我也是整上 WSL2 用了一会滚回 1 了

  • 資深大佬 : tolerance

    配置.wslconfig 限制 wsl2 内存

  • 資深大佬 : Weixiao0725

    还有在 wsl2 上运行 npm start 巨慢,win10 下瞬间就起来了。

  • 資深大佬 : chnyuwen

    @Weixiao0725 windows 和 WSL2 通过网络访问的,把工程放在 WSL2 下就一样速度了,npm 的包太吃 IO 了。

  • 資深大佬 : jeeyong

    加到 64

  • 資深大佬 : aliao0019

    解法就是用 .wslconfig 限制一下上限。

  • 資深大佬 : aliao0019

    去 github 可以看 issue microsoft/WSL/issues/4166

  • 資深大佬 : ebushicao

    我也是这样的,然后我换了 hyper-v 虚拟机。

  • 資深大佬 : p1gd0g

    [wsl2]
    memory=8GB # Limits VM memory in WSL 2 to 8 GB

    之前开 top 看了下,我这边主要是 gopls 占了不少内存。

  • 資深大佬 : SJ2050cn

    我 32g 内存,wsl2 内存限制到 25g,平时占用也就 2g 的样子,没主那么夸张

  • 資深大佬 : digitalwater

    “`
    sudo su
    echo 3 > /proc/sys/vm/drop_caches
    echo 2 > /proc/sys/vm/drop_caches
    echo 1 > /proc/sys/vm/drop_caches
    sync
    “`

    https://github.com/microsoft/WSL/issues/6451

  • 資深大佬 : fuchaofather

    这个确实, 我还专门升级了下内存到 24G, 后来放弃了用 vmware, 内存一下富裕了很多

  • 資深大佬 : taosx

    一天不解决端口预留的问题 一天不用 hyper-v

  • 資深大佬 : dobelee

    限制一下内存。我是特别高的时候 shutdown 一下。

  • 資深大佬 : cubecube

    @systemcall 现在能还了么?之前测试,是无法归还内存给 host 的。只能设置最大值,这也是我弃用 wsl2 的最大原因,没有任何收益,管理还不如 vmplayer

  • 資深大佬 : joyhub2140

    我两台电脑都是 128GB,连 NUC 都上了 64GB,感觉还够用。。。

  • 資深大佬 : systemcall

    @cubecube 有时候会归还一些,运作的机制不是很清楚
    wsl2 里面 dmesg,可以看到 wsl2 内存归还的一些记录,似乎每隔一段时间都会尝试归还一些内存,但是还的不多

  • 資深大佬 : xxfye

    wsl2 只有会在 host 需要内存时才积极释放,其他时候能占多大占多大。
    我 vmmem 启动时大概 300M,经过一些操作后 3G,这时候 host 重负载的情况下(数据处理),就变成减少到 600M,这时候 host 的内存分配速度严重变慢。

  • 資深大佬 : jancgk

    WSL2 如果用 vbox 做虚拟化多好

  • 資深大佬 : TJT

    wsl2 的内存占用真是有够离谱的

    日常 9G, 还行

  • 資深大佬 : imbushuo

    我 160GB 内存,日常 WSL2 稳定吃 10GB 样子

  • 資深大佬 : orannge

    官方内核是可以释放内存的,GitHub 上有些内核可能不行。但文件缓存占用的内存需要手动释放
    `echo 3 > /proc/sys/vm/drop_caches`

  • 資深大佬 : volvo007

    128G 无所畏惧,AMD YES

  • 資深大佬 : RickyC

    但是这是目前我找到, 在 windows 下开发最合适的环境了, 再不然就得直接换 linux 了

  • 資深大佬 : ZZSZZSZZS

    wsl 确实内存释放有点问题,我 16G 的机器,有一次在 wsl 里边编译了一遍 openwrt,就给我占用了 12G,而事实上开 htop 发现 wsl 的内存可用空间还有很多。Windows 真抢不过 wsl 。

  • 資深大佬 : Dragonphy

    我也遇到了,开了 WSL2 电脑巨卡,一看性能,内存达到 90%以上,vemm 占了一半

  • 資深大佬 : melkor

    @imbushuo 160G 可还行

  • 資深大佬 : Mithril

    @Dragonphy WSL2 默认最多占 50%。

  • 資深大佬 : awesomes

    单就文件共享这一块就可以直接放弃 WSL2 了,用 WSL 它不香吗?用 docker 也没啥问题啊

  • 資深大佬 : sleepm

    @awesomes 我 wsl1 升的 wsl2,啥设置也没改过,和 wsl1 一样,照常 cd /mnt/c/users/admin,我也不知道这是不是 bug,反正就很神奇
    wsl2 内存占用也不高,除了烦人的 hyper-v 端口占用之外,没啥觉得不舒服的地方
    wls2 ubuntu 20.04 lts

  • 資深大佬 : awesomes

    @sleepm 当时我也是升到 2 了,但是发现开发访问文件非常慢,然后查了一下相关资料,确实是 wsl2 的问题,果断又回到 1 了。不知道你这是啥情况

  • 資深大佬 : imbushuo

    @melkor Dell 的工作站(

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具