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



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

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

如何调试并了解速度变慢的原因?

上下文

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

码头工人版本:18.04-ce

主机操作系统:Linux 4.15.15

宿主拱门:x86_64

主机规格:i7,16GB 内存,SSD/HDD混合磁盘(码头工人镜像存储在HDD部分)

使用 VM 或 docker 计算机:

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

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

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

我通过使用iostat发现了这一点,如这篇博文中所述:

iostat -x 2 5

通过查看此命令的输出,很明显我的HDD磁盘的%利用率参数高达99%,因此可能是罪魁祸首。接下来,我运行了iotop,dockerd+postgres在列表的顶部。

总之,如果您的容器非常占用 I/O,它们可能会减慢整个 docker 基础架构的速度。

最新更新