【问题标题】:Docker containers slow after restart in Azure VMDocker 容器在 Azure VM 中重新启动后速度变慢
【发布时间】:2015-03-23 10:45:13
【问题描述】:

我对 docker 感到有些奇怪。 我有一个在 Windows Azure 中运行的 Ubuntu 服务器 VM。 如果我启动一个新的 docker 容器,例如像这样的WordPress:

sudo docker run --name some-wordpress --link some-mysql:mysql -p 80:80 -d wordpress

一切运行良好,考虑到低端 VM 设置,我得到了一个相当活泼的网站。

但是,如果我重新启动虚拟机并启动容器:

 sudo docker start some-mysql
 sudo docker start some-wordpress

整个过程运行得很慢,单页响应时间长达2-4秒左右。

移除容器并启动新容器使一切再次正常运行。

这是什么原因造成的?

【问题讨论】:

    标签: mysql wordpress ubuntu azure docker


    【解决方案1】:

    我怀疑这与磁盘使用有关,MySQL 容器是否使用本地磁盘进行存储?当您重新启动现有的 docker 容器时,您会重用现有的卷,通常存储在 /var/lib/docker 的子文件夹中,而新容器会创建一个新卷。

    我发现一些搜索结果表明,Azure 上的 Linux 不能很好地处理“软”重启,并且没有按应有的方式重新连接。据称,“硬”重启可以解决这个问题。

    不确定是否有帮助,我的 Docker 经验全部来自 AWS。

    【讨论】:

      【解决方案2】:

      您的容器在磁盘上运行,该磁盘存储在 blob 存储中,每个磁盘具有 max. 500 IOPS。您可以避免撞到磁盘(对于 MySQL 不太现实)或添加更多磁盘以用于条带化 (RAID0) 或使用 SSD(Azure 中的 D 系列)并且根据您的用例,您还可以完全重新设置 Docker 以使用临时存储 (/dev/sdb) - 这里是 how for CoreOS。顺便说一句,azure.com 中有一些 MySQL 性能(非 Docker)建议。

      【讨论】:

      • 这并不能解释为什么只有重启后才慢。 docker 镜像第一次启动和重启后有什么区别?
      • 我自己没有经历过重启后的减速,所以我没有答案。我可以推测它与重新启动容器后的磁盘活动有关。您在此处看到的大多数性能问题(尤其是关于 MySQL)最终都与 IOPS 相关(我什至看到设备上的一些线程正在运行,这是我过去经历过的)响应时间有什么影响吗?运行 10-15 分钟后会更好吗?另一个有趣的测试是使用 CoreOS,并更改磁盘的缓存设置。很抱歉没有明确的答案,罗杰。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2018-10-04
      • 1970-01-01
      相关资源
      最近更新 更多