在运行群集群集的计算机中,Docker构建速度极慢

时间:2018-04-19 02:10:36

标签: docker docker-swarm

我正在使用笔记本电脑作为单节点Docker Swarm集群。

部署群集后,运行 docker build 命令的速度非常慢。即使命令被缓存(例如RUN chmod ...),也需要几分钟才能完成。

我如何调试它并了解减速的原因是什么?

上下文

我的群集群中的服务数量: 22

Docker版本: 18.04-ce

主机操作系统: Linux 4.15.15

主机拱门: x86_64

主机规格: i7,16GB内存,SSD / HDD混合磁盘(docker images 存储在HDD部分中)

使用虚拟机或泊坞机:

1 个答案:

答案 0 :(得分:2)

在这种情况下,结果是磁盘I / O太多了。

正如我上面提到的,我的笔记本电脑的存储空间分为SSD磁盘和HDD磁盘。 docker镜像存储在HDD磁盘中,但是docker 也是如此(我最初忽略了)。

我在本地运行的集群包含一个接收大量写入的PostgreSQL数据库。那些写操作堵塞了我的硬盘磁盘,因此解决这个特定问题的方法是将PostgreSQL的存储装载到存储在SDD磁盘中的目录中。在下面找到调试过程。

我使用 iostat 发现了这一点,如blog post中指示的那样:

iostat -x 2 5

通过查看此命令的输出,很明显我的硬盘磁盘使用的param高达99%,所以它可能是罪魁祸首。接下来,我运行了 iotop ,并且dockerd + postgres位于列表的顶部。

总之,如果您的容器非常耗费I / O,它们可能会使整个docker基础架构变慢,从而进行爬行。