【问题标题】:How can I improve the performance of my Boot2Docker vm如何提高我的 Boot2Docker 虚拟机的性能
【发布时间】:2014-12-10 14:03:19
【问题描述】:

我一直在我的 mac 上的 docker 上运行我们的 SoA。

它有七个容器:

  • 三个 Rails 应用程序
  • 兔子
  • postgres
  • 弹性搜索
  • rubygems 的数据量

与我的 mac 相比,它的运行速度非常慢。 (例如,gulp 需要 1 小时来读取 docker 上的 manify 中的所有文件,但在 mac 上只需 10 秒)。

我将 VM 的内存增加到 8GB,但它只使用了大约 2GB,所以这不是问题。

有任何想法(我知道这很模糊)。也许我可以做一些 VM 调整。我怀疑这与文件 io 有关,但我知识渊博,不知道如何验证,不介意调整 VM 足以解决它。

注意:rails 应用程序是从主机 mac 的卷中安装的。同样,postgres、rabbit 和 elasticseach 也将数据存储在从 mac 安装的卷上。

【问题讨论】:

  • 清单文件是使用卷还是 docker 映像的一部分安装的?如果存在大量文件 I/O,默认的联合文件系统可能会降低系统速度
  • 它们已安装 - 我认为这确实是问题所在。
  • 所以在 boot2docker 上,挂载是使用 sshfs 文件系统进行的。这可能会减慢他们的速度。在 linux 机器上卷挂载要快得多。如果您可以在没有 boot2docker 的 linux 机器上进行测试,您应该会看到改进。
  • 感谢 Usman - 我将尝试使用 vagrant 配置的 docker,看看有多少改进。
  • Boot2docker 只是运行一个虚拟机虚拟机,您可以只执行 boot2docker ssh 并从那里直接运行 docker。如果你觉得这更容易,那就流浪。

标签: docker virtualbox boot2docker


【解决方案1】:

在 mac 上使用 boot2docker 挂载的主机文件夹的性能不是很好。可能是磁盘密集型进程的问题。我采用的解决方法是使用vagrant provisioned docker,将主机文件映射到那里并从 vagrant 中运行 docker 任务。有点麻烦,但还不错,性能要好得多。

【讨论】:

  • 谢谢米科拉。我想我会试试这个,看看我是否能获得更好的里程数。
猜你喜欢
  • 2014-11-22
  • 2011-09-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 2018-01-24
  • 1970-01-01
相关资源
最近更新 更多