如何降低docker容器的内存消耗?

3
我在一台内存为768M的Vultr VPS上运行了一个golang容器和一个mysql容器,它们都是使用官方镜像构建的,没有做太多额外的工作。由于内存只有767M,出现了“致命错误:运行时内存不足”的错误。
(1) 这是正常的吗?唯一的解决办法就是增加VPS内存吗? (2) 这是异常情况吗?我应该进行某些设置来控制或减少内存消耗吗? (3) 如果我使用--memory=""来控制内存消耗,会发生什么情况如果达到内存上限?

也许你可以使用Alpine而不是Ubuntu或Debian构建较小的镜像?你能发布你的Dockerfile吗? - user2915097
@user2915097,虽然较小的图像尺寸很好,但对内存使用没有任何影响。 - Erik Dannenberg
1
这与Docker真的有关系吗?应用程序在容器外运行时消耗的内存要少得多吗? - Andy Shinn
我使用 golang:1.6rc2 和 mysql:5.7 直接运行两个容器。 - Clerk
1个回答

1
你可以限制容器本身的内存,但这只会使错误更快地发生,因为可用的内存更少。你知道哪个容器消耗了大部分内存吗?

MySQL占用了相当多的内存。 - Clerk
我不认为内存消耗与您的Docker容器有关。您的数据库有多大?您使用的MySQL版本是什么?您是否配置了mysql安装以限制其内存使用? - Elliot Fehr
一个全新的空数据库。我使用mysql5.7。我没有配置内存限制。我能做些什么来减少mysql的消耗呢? - Clerk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接