如何减少`vmmem`进程的消耗?

如何减少`vmmem`进程的消耗?

我在 Windows Home 上安装了 docker,它使用 WSL2 作为后端。但是,自从这样做以来,一个名为 的进程vmmem似乎一直在消耗大量的计算资源。我运行docker stop $(docker ps -aq)以杀死所有正在运行的容器(共有 12 个 - 哎呀),这大大改善了这个问题。但是,即使关闭 docker 后,vmmem它仍然占用约 1.5 - 2GB 的内存和约 20% 的 CPU。既然不再有任何容器在运行,资源消耗不应该是vmmem最小的吗?我该如何减少进程的消耗vmmem

答案1

Daniel B 说得对。要关闭 Vmmem,只需wsl --shutdown在 wsl1/2 中玩完后,进入 Powershell 或任何你喜欢在管理员权限下使用的终端,然后输入命令 。

答案2

我编辑了 WSL 配置来限制内存使用量,如上所述这里

# turn off all wsl instances such as docker-desktop
wsl --shutdown
notepad "$env:USERPROFILE/.wslconfig"

设置您想要的 CPU 核心和内存的值:

[wsl2]
memory=3GB   # Limits VM memory in WSL 2 up to 3GB
processors=2 # Makes the WSL 2 VM use two virtual processors

答案3

vmmem即使在 docker 关闭后,它也会运行几秒钟,最多 1 分钟,然后才会完全关闭。因此,请尝试关闭您的容器和 docker,它很快就会消失。

接受的答案谈论的是关闭WSL(Linux 的 Windows 子系统),如果你真的打开并安装了发行版,这是有意义的,但既然你提到了Docker,我猜你vmmem只是展示了 docker 容器的使用情况。

以下是一位值得信赖的人给出的很好的解释:https://devblogs.microsoft.com/oldnewthing/20180717-00/?p=99265

编辑:

考虑到主要问题是如何减少 RAM 的消耗,并且由于您正在使用 docker;请看一下:Docker 资源限制

更具体地说--memory=2g,您可以限制容器使用的 RAM,进而容器vmmem本身也将使用更少的 RAM。

答案4

Linux 正在消耗内存来缓存文件。可以在命令buff/cache部分看到free。要删除缓存,只需运行echo 3 | sudo tee /proc/sys/vm/drop_caches

相关内容