WSL2 上的 Docker 内存使用量巨大,但原生 Linux 上的 Docker 内存使用量却不大

WSL2 上的 Docker 内存使用量巨大,但原生 Linux 上的 Docker 内存使用量却不大

我目前正在通过以下方式构建交叉编译器crosstool-NG在 Docker 镜像中简化了各种低级库的集成测试。我的笔记本电脑运行的是原生 Fedora(x86_64、16GB RAM、i7 @2.20GHz、Docker 版本 20.10.6),可以构建工具链,内存很少超过总内存的 5%(通过一瞥)。

但是,由于我经常使用笔记本电脑进行开发工作,因此想限制笔记本电脑的 CPU 使用率,因此我考虑使用运行 Windows 10(x86_64、16GB RAM、i7 @3.60GHz Docker 版本 19.03.6)的台式机,在 WSL2 上使用 Docker for Windows 构建镜像。但是,Docker 容器很快用完了所有剩余内存(峰值时我的 CPU 总内存使用率为 95-96%,峰值远高于 9-10GB,通过以下方式监控一瞥vmmem),并开始使用交换内存。此过程由涵盖所有虚拟机的进程监控。

我尝试使用.wslconfig文件来补救这种情况,如下所示:

[wsl2]
memory=6GB
processors=5

虽然配置文件确实有效,但在积极交换内存之前,它的内存上限仅为 6GB。Docker 引擎的基准内存约为 2GB,这仍然留下了约 4-12GB 的内存无法解释。我没有与 WSL2 关联的 Linux 映像(只有与 WSL1 关联的 Ubuntu 映像),但是,由于较新的 Docker 版本需要 WSL2,所以我认为这不会成为问题。

有没有办法在 Windows 版 Docker 上合理地构​​建交叉编译器?我需要租用云计算实例吗?任何反馈或帮助都将不胜感激。

相关内容