【问题标题】:How to reduce memory consumption of docker containers?如何减少docker容器的内存消耗?
【发布时间】:2016-05-24 17:15:50
【问题描述】:

我在内存为 768M 的 Vultr VPS 上运行一个 golang 容器和一个 mysql 容器。它们是从官方图像构建的,还没有做更多的工作。而且767M内存不够用,报“fatal error: runtime: out of memory”的错误。

(1) 这正常吗?唯一的解决办法是增加VPS内存? (2) 这是不正常的吗?我应该做一些设置来控制或减少内存消耗吗? (3) 如果我使用--memory="" 来控制内存消耗,如果达到内存上限会怎样?

【问题讨论】:

  • 也许你可以有更小的图像,从 alpine 而不是 ubuntu 或 debian 构建?你能发布你的 Dockerfile 吗?
  • @user2915097 虽然较小的图像尺寸很好,但它对内存使用没有任何影响。
  • 这真的和Docker有关吗?应用程序在容器外运行时消耗的内存是否更少?
  • 我使用golang:1.6rc2和mysql:5.7直接运行两个容器。

标签: mysql memory docker


【解决方案1】:

您可以限制容器本身的内存,但是这只会导致错误更快发生,因为可用的内存会减少。您知道您的哪个容器占用了大部分内存吗?

【讨论】:

  • mysql 占用大量内存
  • 在这种情况下,我认为内存消耗与您的 Docker 容器无关。你的数据库有多大?您使用的是什么版本的 MySQL?你有没有配置你的mysql安装来限制它的内存使用?
  • 一个没有任何内容的全新数据库。用mysql5.7。我没有配置内存限制。我能做点什么来减少mysql的消耗吗?
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 2019-03-02
  • 2013-06-13
相关资源
最近更新 更多