Allegro 设法显著节约了 GCP Big Data 上运行的一条数据流管道的成本。该公司继续致力于通过评估资源利用率、增强管道配置、优化输入和输出数据集以及改进存储策略来提高其数据工作流的成本效益。
Allegro 在 Google Cloud Dataflow 处理引擎上运行许多数据管道,并找出了许多优化这些管道以节省成本的方法。Allegro 高级软件工程师 Jakub Demianowski 分享了一个案例研究,详细介绍了优化单个管道以将成本降低约 60% 所采取的步骤。
CPU 利用率统计(来源:Allegro 技术博客)
成本优化工作集中在三个关键领域,并涉及一些对导致运行管道总成本的潜在低效率的假设的测试。要探索的第一个假设是计算资源可能利用不足。对 CPU 利用率指标的分析显示,平均 CPU 利用率为 85%,使用率降低的原因是数据混洗,这表明 CPU 并未被充分利用。
内存利用率统计(来源:Allegro 技术博客)
通过查看内存利用率指标,Demianowski 得出结论,只有 50% 的可用内存被使用。他选择更改计算实例类型以调整 CPU 与内存的比率,从而节省了 10% 的成本。
作者考虑的第二个假设是,原有虚拟机类型的性价比不是最优的。根据 Google Cloud 提供的 CoreMark 分数,t2d-standard-8 VM 类型提供了最佳的成本效益。他使用 3% 的原始数据集运行数据管道并实现了 32% 的成本降低,进一步证实了这一点。第三个假设侧重于 VM 存储类型。Demianowski 对比了使用 HDD 或 SSD 磁盘的不同 VM 系列,结果表明使用 SSD 更便宜。
最后一个假设涉及作业配置中可能的成本效率低下因素。一个特别令人担忧的领域是 Dataflow Shuffle 服务的成本过高。作者评估了使用和不使用 Shuffle 服务运行该作业的情况,并得出结论,关闭 Shuffle 服务可大大降低成本,此外还可使 worker 节点充分利用可用内存。
在实施博客文章中描述的步骤后,Demianowski 估计运行该管道的年成本从 12.7 万美元降低至约 4.8 万美元。他总结了提高运行管道成本效益的各项努力:
我们甚至无需接触处理代码就取得了出色的成果。推测方法提供了良好的结果。可能仍有一些优化空间,但在给我的时间约束内,我认为这些结果是一流的,并且没有发现任何进一步优化 Dataflow 作业的环境和配置的理由。
作者强调,每个数据管道都是不同的,工程师需要有条不紊地查看和运用不同的途径来降低运营成本并实证评估相关成本。
查看原文链接:
https://www.infoq.com/news/2024/11/allegro-dataflow-cost-savings/
评论