docker 用于 com.docker.hyperkit 中的 mac 内存使用情况

Posted

技术标签:

【中文标题】docker 用于 com.docker.hyperkit 中的 mac 内存使用情况【英文标题】:docker for mac memory usage in com.docker.hyperkit 【发布时间】:2020-02-07 00:41:10 【问题描述】:

我在 MacOS Mojave 上运行 docker desktop community 2.1.0.3。我已经为 Docker 分配了 8GB 的​​内存,这看起来已经很多了(这是我 RAM 的一半)。不知何故,即使退出然后再次启动 Docker for Mac,这意味着没有容器在运行,docker 已经超过了 1GB 的内存分配。

没有容器运行的 docker 的预期内存使用量是多少? docker for mac 或 docker 的 hyperkit 是否存在内存泄漏?

【问题讨论】:

我在本地系统 FWIW 上看到了这个,但我可以右键单击列标题并启用“Real Memory”和“Compressed Memory”列。我怀疑此列过多地计算了进程已为其腾出空间的虚拟内存,但实际上并未请求实际内存。 在github.com/docker/for-mac/issues/3232 中有一个指向the following document: Understanding memory usage in Docker Desktop on Mac 的链接,其中还提到了检查“真实内存”。有多个实验,其中有一些不错的细节。 ???? Docker 在我的 macbook pro 上也使用 %50 cpu... 我的 cpu 使用率为 160%。我的系统 mac os catalina 10.15.5,docker 版本 2.3.0.3 稳定。我的电脑迷疯了 我的 mac 也完全符合 @melihsahin 的描述。 【参考方案1】:

正如@GabLeRoux 在评论中所分享的,“实际内存”使用率远低于您在活动监视器中的“内存”列中看到的。

This document thoroughly explains memory usage on Mac OS with Docker Desktop 和信息是从那里摘录的。

要查看 Docker 使用的“Real Memory”,请右键单击 Activity Monitor 中的列名并选择“Real Memory”。此列中的值是当前物理分配给 com.docker.hyperkit 的值。

【讨论】:

在我的例子中,hyperkit 占用了 14.26GB 的内存和 114MB 的实际内存。 kernel_task 占用 11.44GB 的实际内存。当我停止 hyperkit 时,kernel_task 降至 7.8GB 好的。问题的解决方案是什么?如果启动 docker 挂起系统,应用程序会冻结。停止泊坞窗工作正常。是的,活动监视器界面存在内存差异。我看到的只是com.docker.hyperkit 价值巨大 所以答案是“不用担心”? 我的风扇还在疯狂转动,我的笔记本电脑甚至慢得多。 如果 hyperkit 消耗的实际内存明显低于分配的内存,您可以将 Docker Desktop 配置为使用更接近实际使用的内存量。

以上是关于docker 用于 com.docker.hyperkit 中的 mac 内存使用情况的主要内容,如果未能解决你的问题,请参考以下文章

用于执行 gradle bootBuildImage 命令的 Docker 映像

用于多环境本地开发的 Docker

Webpack DevServer HMR 不适用于 ngrok->docker

测试开发CICD——Docker——docker cp —— 用于容器与主机之间的数据拷贝

用于 Python 变量的 Docker ENV

docker-compose 日志记录不适用于 syslog 选项