Cia*_*lsh 42 memory resources docker windows-10
我在使用 WSL2 作为后端的 windows home 上安装了 docker。但是,由于执行此操作,称为进程vmmem似乎一直在消耗大量计算资源。我跑去docker stop $(docker ps -aq)杀死所有正在运行的容器(有 12 个 - 哎呀),这显着改善了这个问题。然而,即使在关闭 docker 之后vmmem,仍然需要约 1.5 - 2Gb 的内存和约 20% 的 CPU。既然没有任何容器在运行,那么资源消耗不是vmmem应该最小吗?我怎样才能减少vmmem过程的消耗?
小智 57
丹尼尔 B 很有钱。要关闭 Vmmem,只需进入 Powershell 或您喜欢在管理员权限下使用的任何终端并输入命令wsl --shutdown,当您完成在 wsl1/2 中的播放后。
小智 15
Linux 正在消耗内存来缓存文件。buff/cache在命令部分可以看到free。要删除缓存,只需运行echo 3 | sudo tee /proc/sys/vm/drop_caches.
Lor*_*nzo 13
vmmem即使在 docker 关闭后,它也会在完全关闭之前运行几秒钟到 1 分钟。所以尝试关闭你的容器和 docker,它应该很快就会消失。
接受的答案谈到关闭WSL(Linux 的 Windows 子系统),如果您实际打开并安装了发行版,这很有意义,但是既然您提到了Docker,我猜您vmmem只是在展示 docker 容器的使用情况。
这是一个值得信赖的人的很好的解释:https : //devblogs.microsoft.com/oldnewthing/20180717-00/?p=99265
小智 12
我编辑WSL配置限制内存的使用所提到这里
# turn off all wsl instances such as docker-desktop
wsl --shutdown
notepad "$env:USERPROFILE/.wslconfig"
Run Code Online (Sandbox Code Playgroud)
为 CPU 核心和内存设置所需的值
[wsl2]
memory=3GB # Limits VM memory in WSL 2 up to 3GB
processors=4 # Makes the WSL 2 VM use two virtual processors
Run Code Online (Sandbox Code Playgroud)
小智 9
我只是%UserProfile%\.wslconfig用这两行创建了文件,其他所有内容都保持不变。效果很好。
[wsl2]
memory=8GB
Run Code Online (Sandbox Code Playgroud)
添加 WSL 文件以获取新设置后,我立即完全关闭。
$ wsl --shutdown
Run Code Online (Sandbox Code Playgroud)
请在此处查看 Microsoft 提供的其他信息:WSL 中的高级设置配置
小智 8
通过在 PowerShell 中右键单击并以管理员模式运行以下命令,重新启动 WSL2:
Restart-Service LxssManager
Run Code Online (Sandbox Code Playgroud)
当我看到这个问题时,这个问题已经存在了大约 2 年,我现在才看到这些问题。可能是因为在 Windows 的 Docker 中启用了 Kubernetes(我不确定)。
我能够使用wsl --shutdown释放内存但禁用 Docker 的命令关闭 Windows Linux 子系统 (WSL)。
因此,我按照建议更新了我的~/.wslconfig文件(又名)以减少内存。%USERPROFILE%\.wslconfig我相信这有帮助。
后来发现我的 WSL 子系统已经过时,并且没有通过 Windows 更新进行更新(默认情况下),因为我禁用了Receive updates for other Microsoft products when you update Windows.
所以我启用了它,并运行wsl --update(在管理 shell 中),我的 WSL 版本从 3/16/21 ( ) 更新Kernel Version 5.4.72到今天 (5/2/22) ( Kernel Version 5.10.102.1)。
我希望这也会有所帮助。
| 归档时间: |
|
| 查看次数: |
75779 次 |
| 最近记录: |