为什么我的容器没有使用主机的可用 RAM?
Why is my container is not using the available RAM of my host machine?
我 运行 docker 使用 windows 16GB RAM 的机器。
根据 docker stats
,我的容器使用 4GB 内存(见下面的输出)。但是,根据我的 windows 任务管理器,没有进程占用那种内存,并且当我 start/stop 我的容器时,我的计算机上的内存使用不会改变。
因此我的问题是
- 容器使用的 4GB RAM 来自哪里(磁盘作为 RAM?)
- 我如何配置我的容器以使用可用的 RAM
我的容器非常慢,我怀疑是因为上述行为;它在哪里使用磁盘作为虚拟内存,因此并没有真正使用它可用的资源(RAM)。
$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
66a9ccfd0a51 quirky_wozniak 0.04% 4.268GiB / 4.815GiB 88.63% 113kB / 20.2kB 40.8MB / 1.07MB 16
task manager screen shot
Docker Settings
Docker for Windows 通常运行 VM 来支持 Linux 容器。分配给此 VM 的内存是 docker 主机上可用的内存。在首选项中,有一个菜单可以配置 CPU 核心数和专用于该 VM 的内存量:
问题是任务管理器不将 Hyper-V 视为进程,因此不会显示在进程列表中。
换句话说,任务管理器并没有显示正在消耗的内存,只是在摘要中。
通过使用 RMAP 等高级工具,我们可以看到 "Driver Locked" 部分正在使用内存。
我 运行 docker 使用 windows 16GB RAM 的机器。
根据 docker stats
,我的容器使用 4GB 内存(见下面的输出)。但是,根据我的 windows 任务管理器,没有进程占用那种内存,并且当我 start/stop 我的容器时,我的计算机上的内存使用不会改变。
因此我的问题是
- 容器使用的 4GB RAM 来自哪里(磁盘作为 RAM?)
- 我如何配置我的容器以使用可用的 RAM
我的容器非常慢,我怀疑是因为上述行为;它在哪里使用磁盘作为虚拟内存,因此并没有真正使用它可用的资源(RAM)。
$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
66a9ccfd0a51 quirky_wozniak 0.04% 4.268GiB / 4.815GiB 88.63% 113kB / 20.2kB 40.8MB / 1.07MB 16
task manager screen shot
Docker Settings
Docker for Windows 通常运行 VM 来支持 Linux 容器。分配给此 VM 的内存是 docker 主机上可用的内存。在首选项中,有一个菜单可以配置 CPU 核心数和专用于该 VM 的内存量:
问题是任务管理器不将 Hyper-V 视为进程,因此不会显示在进程列表中。 换句话说,任务管理器并没有显示正在消耗的内存,只是在摘要中。
通过使用 RMAP 等高级工具,我们可以看到 "Driver Locked" 部分正在使用内存。