Dockerd内存使用 - 使用的内存多于pod使用的内存

时间:2017-11-03 09:57:10

标签: docker memory kubernetes containers daemon

为什么dockerd守护进程使用太多内存?我有几个正在运行的pod正在使用少于4 GB的RAM然后我看到dockerd正在使用像6这样的东西? 为什么会这样?这可以接受吗?我的意思是,要管理pod我的主机应该拥有所有这些资源? 我还在我的K8S群集中包含了定期删除未使用的旧docker镜像的逻辑,因此我认为该问题与旧图像无关。

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

我的虚拟机:

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

对我来说非常重要的是要了解我的群集应该具有的实际内存量,因为我正在谈论可能的生产环境,其中我的pod将被缩放/缩小。 你能帮忙理解这个吗?

98eju

我现在进行了另一次检查(docker stats),此时我的群集(有3个代理),agent0正在使用更多内存:

enter image description here

enter image description here

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

0 个答案:

没有答案