因此,我有一个简单的Go应用程序,我把它部署为一个Docker容器。我正在使用t2.small AMI在AWS上运行一个CoreOS实例。
根据docker stat,容器非常小,仅使用大约10 to的内存。
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的内存,只剩下大约300 As的内存。而且这种情况似乎正在慢慢恶化。
我已经运行了大约3天的实例,在重新启动和启动单个Docker容器之后,空闲内存以大约400 at的速度启动。
这是我该担心的吗?或者,当我在容器中的小Go应用程序只使用10 my时,CoreOS应该使用这么多内存。
发布于 2016-01-27 01:42:43
因为很多内存的使用都是缓冲区和缓存。更好的指示符是来自Docker的应用程序(如果它是一个小型的Go应用程序,它可能会关闭),以及第二行的操作系统总使用量-- minux缓冲区和缓存--(这接近使用了400 MB )。
有关合理的解释,请参见https://unix.stackexchange.com/a/152301/6515。
https://stackoverflow.com/questions/35016033
复制相似问题