CoreOS单容器高内存使用率

所以我有一个简单的Go Web应用程序,我部署为一个Docker容器。 我正在使用t2.small AMI在AWS上运行一个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开始。

这是我应该担心的吗? 或者说,CoreOS应该使用如此多的内存,当我的一个容器中的小应用程序只使用微小的10MB。

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

请参阅https://unix.stackexchange.com/a/152301/6515一个体面的解释。