解决WSL2占用内存过多问题(Docker on WSL2: VmmemWSL)

这篇具有很好参考价值的文章主要介绍了解决WSL2占用内存过多问题(Docker on WSL2: VmmemWSL)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题描述

安装完WSL2后,又安装了Docker,使用了一段时间,发现电脑变卡,进一步查看,发现CPU和内存占用过大,如下图:
wsl2 内存,Docker,docker,wsl
docker仅仅运行了mysql和zk,在关掉docker后,占用内存仍然很大:
wsl2 内存,Docker,docker,wsl
然后关掉wsl后,发现内存下降了。

wsl --shutdown

但是,这种解决方案并不满足我的诉求,我想要的结果是:docker+低内存占用

二、问题解决

通过查询资料,最终的解决方案如下:调整wsl的资源配置信息,将内存占用限制在较小的范围。
上述信息配置在.wslconfig文件中(WSL1的配置文件为wsl.conf,详细信息可参考wsl配置文件)

2.1 创建.wslconfig文件

路径位置C:\Users\<UserName>\.wslconfig,如果找不到也可以在Win+R,然后输入%userprofile%回车即可
wsl2 内存,Docker,docker,wsl
如果目录下不存在,则创建.wslconfig(多数情况下,是不存在的)
wsl2 内存,Docker,docker,wsl文件内容如下:

# Settings apply across all Linux distros running on WSL 2
[wsl2]

# Limits VM memory to use no more than 2 GB, this can be set as whole numbers using GB or MB
memory=2GB 

# Sets the VM to use two virtual processors
processors=6

# Sets amount of swap storage space to 2GB, default is 25% of available RAM
swap=2GB

# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
# swapfile=C:\\temp\\wsl-swap.vhdx

这里需要说明的是:下图是微软官方推荐的配置信息,但我仅仅用来装mysql等数据库之类的,所以改的比较小(比如我的内存是32G,如果按照推荐的话,应该是8G,但我只想给他2G)。
推荐配置
wsl2 内存,Docker,docker,wsl

2.2 重启wsl2

# 关闭wsl
wsl --shutdown
# 启动wsl
wsl

启动docker并开启mysql等,再次查看资源占用,明显下降:
wsl2 内存,Docker,docker,wsl文章来源地址https://www.toymoban.com/news/detail-718595.html

到了这里,关于解决WSL2占用内存过多问题(Docker on WSL2: VmmemWSL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

    很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。 其实,不同于 WSL1, WSL2 本质上是虚拟机 ,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件

    2024年02月16日
    浏览(79)
  • windows wsl2 docker+k8s+cuda容器无法启动问题解决

    docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #1: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as \\\'legacy\\\' nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overl

    2024年02月13日
    浏览(38)
  • WSL2模式下,将Ubuntu、Docker迁移出C盘并解除Ubuntu、Docker对C盘的空间占用

    windows用户以前如果需要使用linux,一般是远程linux服务器或者使用虚拟机,更有甚者是把系统换成linux。相较于以上方式,对于体验用户或者本机需要使用容器创建服务的用户来说,这是很不方便的。但是近年来,微软也开发了wsl,在windows里集成了linux服务,启用wsl后,从微软

    2024年02月09日
    浏览(29)
  • 解决WSL2的ubuntu20.04中安装docker出现无法连接的问题(Cannot connect to the Docker daemon)

    wsl2的ubuntu20.04系统安装docker可以参考官网教程操作,我个人喜欢参考其中的离线安装方式:Install from a package。只需要按照官网一步步操作即可,跟普通的ubuntu20.04的安装是一样的步骤。 在安装完以后,发现一旦使用docker相关命令会出现下述问题: 说明docker没有正常启动。这

    2024年04月23日
    浏览(40)
  • 【Android】 频繁刷新 RecyclerView导致View 对象引用过多引起的Native 内存占用过大解决办法

    在 RecyclerView 中,如果频繁刷新 RecyclerView,可能会导致 Native 内存中有大量的 TextView 对象,从而导致内存占用过多的问题。以下是一些可能导致该问题的原因和解决方法: 使用 ViewHolder 在 RecyclerView 中,使用 ViewHolder 可以避免频繁创建和销毁 View 对象,从而减少内存占用。可

    2024年02月08日
    浏览(47)
  • Docker Desktop Vmmem内存占用过高问题解决方案

    内存占用过高原因 主要原因是docker desktop的实现及基于wsl(Windows子系统),相当于在Windows上同时开了一个虚拟机,如果不对wsl的资源进行限制,它将会极大的获取系统资源.所以我们只需要对wsl的最大资源进行限制即可 解决方案 修改wsl配置文件 官方地址 具体配置: 在用户目录创建

    2024年02月05日
    浏览(30)
  • 【dev on wsl2】wsl2 with vscode简单配置

    1.1 安装方式选择: 安装wsl2一般来说有三种方式: cmd/powershell 命令行安装(建议管理员模式) microsoft store 安装 microsoft 官网安装 ps: win + R调出运行框,输入\\\"winver\\\" 查看 Windows 版本及内部版本号 ① 命令行安装wsl的先决条件是必须运行 Windows 10 版本 2004 及更高版本(内部版本

    2024年02月05日
    浏览(30)
  • Vmmem进程(WSL)占用CPU或内存资源过高的解决办法

            有没有一瞬间,在开启docker或打开虚拟机时,内存瞬间飚增,进行查看进程消耗是一个Vmmem的进程在作祟,那么Vmmem是什么呢,又如何进行限制呢!         Vmmem: 是一个系统合成的虚拟进程,用于表示虚拟机小航的内存和CPU资源。换句话说,您看到的Vmmem消耗

    2024年02月13日
    浏览(64)
  • Centos 系统内存 buff/cache 占用过多

    查看Centos内存使用情况: free -h 在云服务器上,total = used + free + buff/cache Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于对buffer/cache的释放。 还可以使用下面这个文件来人工

    2024年02月16日
    浏览(33)
  • linux中 buff/cache占用内存过多

    Linux服务器用一段时间就会出现buff/cache占用内存过多的情况,导致free空闲内存变得非常少,严重影响使用; 这个时候就可以用如下命令去清除一下cache内存 echo 1 /proc/sys/vm/drop_caches echo 2 /proc/sys/vm/drop_caches echo 3 /proc/sys/vm/drop_caches ##/proc/sys/vm/drop_caches的值为是0-3之间的数字,代

    2024年01月18日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包