Dockerd内存使用情况 – 使用的内存比使用的内存更多

为什么dockerd守护进程使用的内存太多? 我有几个运行内存小于4 GB的内存,然后我看到dockerd正在使用类似6? 为什么发生这种情况? 这可以接受吗? 我的意思是,pipe理荚我的主机应该有所有这些资源? 我还在我的K8S群集中包含了定期移除旧docker图像的逻辑,所以我想这个问题与旧图像无关。

谷歌search我可以看到,有很多人观察这些问题,与他们正在使用的版本可能泄漏/问题有关。 无论如何,我在不同版本的两台不同机器上观察这个问题:

我的虚拟机:

Client: Version: 17.03.1-ce API version: 1.27 Go version: go1.7.5 Git commit: c6d412e Built: Mon Mar 27 17:17:43 2017 OS/Arch: linux/amd64 Server: Version: 17.03.1-ce API version: 1.27 (minimum version 1.12) Go version: go1.7.5 Git commit: c6d412e Built: Mon Mar 27 17:17:43 2017 OS/Arch: linux/amd64 Experimental: false 

我的Azure K8S群集:

 arwadmin@k8s-master-B1FEF67B-0:~$ docker version Client: Version: 1.12.6 API version: 1.24 Go version: go1.6.4 Git commit: 78d1802 Built: Tue Jan 10 20:38:45 2017 OS/Arch: linux/amd64 Server: Version: 1.12.6 API version: 1.24 Go version: go1.6.4 Git commit: 78d1802 Built: Tue Jan 10 20:38:45 2017 OS/Arch: linux/amd64 

对我来说非常重要的是要理解我的集群应该存在的真正的内存量,因为我正在谈论一个可能的生产环境,在这个环境中我的集装箱应该被放大/缩小。 你能帮忙理解这个吗?

98eju

我做了另一个检查(docker stats),并且在这个时候在我的集群上(有3个代理),agent0使用更多的内存:

在这里输入图像说明

在这里输入图像说明

并且所有使用的内存总和小于4 GB。 为什么Dockerd守护进程本身在一个代理上使用近7 GB,而在其他两个代理上使用几MB?