在Windows机器上使用Windows子系统Linux2安装Docker的用户抱怨遇到vmmem进程消耗大量内存能力。根据这些受影响的用户的说法,这种内存消耗超出了图表,有时甚至达到99%(1.5-2 GB的RAM)!这是一个令人担忧的问题,因为这会显着降低受影响的系统的速度。因此,您应该按照这些修复程序来解决问题。
修复 1 – 让它运行
即使在关闭 WSL2 后,vmmem 进程仍将继续运行。这是正常行为,在结束 vmmem 进程后,vmmem 可能会继续消耗更多的系统资源,最长可达 1-2 分钟。因此,请等到该点停止并最终释放内存。
修复 2 – 关闭 WSL
阻止 Docker 使用过多内存的最佳方法是关闭 Linux 的 Windows 子系统。
注意 – 由于这会停止 WSL2,因此应小心仅在需要时运行此命令。因此,只有在您完成运行 Docker 并且您不再需要它时才运行它。
1.您可以从任何终端执行此操作,但必须使用管理权限打开它。因此,打开搜索框并键入“powershell”。
2.然后,右键单击“Windows PowerShell”,然后单击“以管理员身份运行”以管理员身份打开终端。
3.现在,将其写在终端中并按回车键关闭Linux的Windows子系统。
wsl --shutdown
这将关闭 WSL2,最终,vmmem 将停止消耗大量内存。
修复3 –限制内存使用
还有另一种方法可以通过 WSL2 绑定内存使用情况。您可以创建新的配置文件或编辑现有配置文件。
步骤 1
1. 首先,您必须关闭 WSL2 配置。
2.因此,开始在搜索框中键入“电源外壳”。
3.然后,右键单击“Windows PowerShell”,然后单击“以管理员身份运行”以管理员身份运行终端。
4. 在此之后,运行此代码以立即停止 WSL2。
wsl --shutdown
在此之后,您可以关闭PowerShell终端。
步骤 2
现在,您必须创建一个配置文件。所以,滑过这些点。
1. 搜索并打开记事本。
2.在那里,粘贴这两行。
[wsl2] memory=2GB # Limits VM memory in WSL 2 up to 3GB processors=2 # make the WSL 2 use up to two virtual processors
[注意 – 您可以在配置文件中看到,我们已将内存参数设置为 2 GB,虚拟处理器计数设置为 2。这些是修饰符,您可以根据需要设置它们。
3.之后,单击“文件”,然后单击“另存为”以保存文件。
4. 现在,将文件命名为“%UserProfile%.wslconfig”。
5.然后,单击“保存”以保存文件。
在此之后,您可以关闭记事本。
之后,打开 Docker。打开它后,您将看到重新启动虚拟机的选项。
因此,单击“是”以重新启动它。
现在,vmmem 不会占用大量 RAM。
可选步骤 –
Linux 消耗更多内存来缓存文件。您可以使用此单行(从管理终端运行)来防止这种情况 –
echo 3 | sudo tee /proc/sys/vm/drop_caches
这应该会限制缓存存储并为主机释放更多 RAM。
修复 4 – 重新启动 LxssManager
您必须在PowerShell中重新启动LxssManager。
1. 以管理员身份打开 PowerShell 或任何其他终端。
2.然后,输入此命令并按 输入 重新启动LxssManager。
Restart-Service LxssManager
然后,再次检查RAM消耗。
修复5 –增加分配的资源
您可以轻松增加分配的 RAM、CPU 和交换,从而显著减少 vmmem 消耗。
1. 打开 Docker 设置 [ 您可能需要在 Linux 模式下运行 Docker VM 才能看到此设置。
2.在那里,转到“高级”设置。
3.在其中,您可以根据可用的系统资源调整CPU,内存和交换设置。