dob*_*ler 47 docker windows-10 wsl-2
在阅读了在 wsl2 上运行 Docker 时的性能改进后,我一直在等待支持 wsl2 的 Windows 10 的正式版本。我更新了 Windows 和 Docker 并打开了 Docker 标志以使用 wsl2,并希望我的 Oracle 数据库在 Docker 容器中运行时获得一些性能提升,但不幸的是,这种变化大大降低了容器和我的笔记本电脑的速度。容器的性能大约慢了 10 倍,而且我的笔记本电脑在启动容器时几乎卡住了。似乎内存消耗将完全耗尽我的 8GB 并且大量内存交换开始发生。我可以做些什么来提高 Docker 在 wsl2 上的性能,或者至少可以更好地了解我的设置有什么问题?
我的环境:
The*_*o L 40
这来自消耗尽可能多的资源的“vmmem”。要解决这个问题,只需转到您的用户文件中
C:\用户\用户名
在此目录中创建一个名为“ .wslconfig ”的文件,您将在其中配置可以使用 WSL2 的资源数量:
[wsl2]
memory=900MB #Limits VM memory in WSL 2 to 900MB
processors=1 #Makes the WSL 2 VM use one virtual processors
Run Code Online (Sandbox Code Playgroud)
现在关闭您的 docker 并等待“vmmem”在任务管理器中关闭。
那么您可以重新启动 docker,通常“vmmem”不会超过您设置的限制(此处为 900MB) 如果不起作用,请重新启动您的计算机。
我希望它对你有帮助。
And*_*ndy 19
您可能将代码存储在 Windows 机器上的一个类似于此的文件夹中...
C:\\Users\YourName\projects\blahfu
Run Code Online (Sandbox Code Playgroud)
但是您在 WSL 2 上使用 Docker,这是一个不同的(Linux)文件系统。因此,当您执行 Docker 构建时,所有代码/上下文都会从 Windows 文件系统复制到 Linux 文件系统,然后再从那里复制到 Docker 容器。这是最耗时的,而且速度非常慢。
尝试将您的项目放入这样的文件夹中...
/home/YouName/projects/blahfu
Run Code Online (Sandbox Code Playgroud)
你应该得到相当大的性能提升。
ato*_*m88 13
如果实际 docker 容器的数据存储在 Windows 文件系统(即 NTFS)上,而不是存储在本机 Linux 文件系统上(无论 docker 容器内容是什么,很可能已经基于 Linux),那么我认为您是由于您正在运行 WSL 并使用已安装的 WINDOWS 文件系统中的 docker 容器(即/c/mnt/...),因此会看到性能缓慢。
如果将 docker 容器复制到/usr/local、 或/home/<username>/dockerWSL 上,那么您可能会看到性能提高 10 倍。
尝试一下,看看是否有效?
too*_*ooy 12
wsl 容器具有与 Windows 文件系统隔离的适当文件系统。基本思想是将源代码从 windows 文件系统复制到 wsl 文件系统。
从窗口您可以访问 wsl 容器并将您的项目复制到 wslcontainer :
使用资源管理器导航到 \\wsl$
从这个位置重建容器这将奏效!
您需要编辑“vmmem”资源,只需在路径中添加文件 .wslconfig
C:\Users<您的用户名>.wslconfig
使用 .wslconfig 配置全局选项
Available in Windows Build 19041 and later
Run Code Online (Sandbox Code Playgroud)
您可以通过将 .wslconfig 文件放入用户文件夹的根目录中来配置全局 WSL 选项:C:\Users<yourUserName>.wslconfig。其中许多文件与 WSL 2 相关,请记住您可能需要运行
wsl--关闭
关闭 WSL 2 VM,然后重新启动 WSL 实例以使这些更改生效。
这是一个示例 .wslconfig 文件:
安慰
Copy
[wsl2]
kernel=C:\\temp\\myCustomKernel
memory=4GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors
Run Code Online (Sandbox Code Playgroud)
看到这个https://learn.microsoft.com/en-us/windows/wsl/wsl-config
| 归档时间: |
|
| 查看次数: |
35590 次 |
| 最近记录: |