Doctor:通过指令重新编排优化容器重建效率
软件工程
2025-04-03 v1
摘要
容器化已通过 Docker 带来了软件部署的革命,后者因其易用性和一致的运行时环境而领先。随着 Docker 用途的增长,优化 Dockerfile 性能(特别是减少重建时间)对于维持高效的 CI/CD 流水线至关重要。然而,现有优化方法主要针对单个构建进行处理,而不考虑与修改和演化相关的重复重建成本,限制了长期效率的提升。为弥合这一差距,我们提出了 Doctor 方法,通过指令重新排序提高 Dockerfile 构建效率,解决关键挑战:识别指令依赖关系、预测未来修改、确保行为等价性以及管理优化计算复杂度。我们基于 Dockerfile 语法构建了全面的依赖分类,并基于历史修改分析来优先处理最常被修改的指令。使用加权拓扑排序算法,Doctor 可优化指令顺序以最小化未来重建时间,同时保持功能完整性。在 2000 个 GitHub 仓库的实验中显示,Doctor 改进了 92.75% 的 Dockerfile,平均减少 26.5% 的重建时间,其中 12.82% 的文件实现了超过 50% 的降低。值得注意的是,86.2% 的案例保持功能相似性。这些发现凸显了 Docker 管理的最佳实践,使开发人员能够通过知情的优化策略来提高 Docker 效率。
关键词
引用
@article{arxiv.2504.01742,
title = {Doctor: Optimizing Container Rebuild Efficiency by Instruction Re-Orchestration},
author = {Zhiling Zhu and Tieming Chen and Chengwei Liu and Han Liu and Qijie Song and Zhengzi Xu and Yang Liu},
journal= {arXiv preprint arXiv:2504.01742},
year = {2025}
}
备注
24 pages. ISSTA2025