CoreOS 单容器高内存占用

CoreOS Single Container High Memory Usage

所以我有一个部署为 Docker 容器的简单 Go Web 应用程序。我是 运行 AWS 上带有 CoreOS AMI 的 t2.small 实例。

容器很小,根据docker stat:

只使用了大约10MB的内存
CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O               BLOCK I/O
8e230506e99a        0.00%               11.11 MB / 2.101 GB   0.53%               49.01 MB / 16.39 MB   1.622 MB / 0 B

但是 CoreOS 实例似乎使用了大量内存:

$ free
             total       used       free     shared    buffers     cached
Mem:       2051772    1686012     365760      25388     253096    1031836
-/+ buffers/cache:     401080    1650692
Swap:            0          0          0

如您所见,它使用了 2GB 总内存中的近 1.7GB 内存,仅剩约 300MB。而且这似乎在慢慢恶化。

我已经使用实例 运行 大约 3 天了,在重新启动并启动单个 Docker 容器后,可用内存开始在 400MB 左右。

这是我应该担心的事情吗?或者当我在容器中的小 Go 应用程序仅使用微小的 10MB 时,CoreOS 是否应该使用这么多内存。

因为很多内存使用是缓冲区和缓存。更好的指标是来自 Docker 的应用程序(如果它是一个小型 Go 应用程序,它可能接近)和第二行的 OS 总使用 minux 缓冲区和缓存(接近 400 MB 使用).

请参阅 https://unix.stackexchange.com/a/152301/6515 以获得合理的解释。