写点什么

Allegro 如何将运行 GCP 数据流管道的成本降低 60%

作者:Rafal Gancarz

  • 2024-12-09
    北京
  • 本文字数:981 字

    阅读完需:约 3 分钟

Allegro 如何将运行 GCP 数据流管道的成本降低 60%

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/

2024-12-09 08:049795

评论

发布
暂无评论
发现更多内容

从零开始分析InstantRun源码(1),最新精心整理Android面试题

android 程序员 移动开发

作为程序员的我们应该如何在当今国内的信息产业生存?,万字解析

android 程序员 移动开发

从零开始分析InstantRun源码,kotlin实现接口

android 程序员 移动开发

从零开始学数据结构和算法 (五) 分治法 (二分查找、快速排序、归并排序)

android 程序员 移动开发

从零开始学数据结构和算法-(五)-分治法-(二分查找、快速排序、归并排序)

android 程序员 移动开发

【设计模式】第八篇 - 原型模式 - DOTA-幻影长矛手

Brave

设计模式 原型设计 11月日更

作为一名Android面试官,这些面试官常问的开发面试题你都掌握好了吗?

android 程序员 移动开发

人手必备的Jetpack操作手册来了!针对性解决Jetpack组件问题

android 程序员 移动开发

从 0 到 15k+ star ,GSYVideoPlayer 的发展历程|项目复盘

android 程序员 移动开发

从三线城市到一线城市,我找Android工作的点点滴滴,图形化app开发工具

android 程序员 移动开发

今日头条APK瘦身之路(1),android设计模式

android 程序员 移动开发

从0开始写一个基于Flutter的开源中国客户端(5),带你全面理解View的绘制流程

android 程序员 移动开发

从根上理解RXJava,深入RxJava 的适用场景和使用方式(Retrofit

android 程序员 移动开发

任性!我开发了一款自己用的天气预报app,android双击事件响应

android 程序员 移动开发

作为Android开发者,你真的知道Android按下开机键到启动发生什么吗?

android 程序员 移动开发

演进实录|不同阶段的企业如何搭建监控体系?

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 监控工具

什么?这个天天使用的API竟然被废弃了?,android组件化和模块化区别

android 程序员 移动开发

从月薪2000的打字员到年薪21w的程序员,1年里我经历了什么!

android 程序员 移动开发

从观察者模式出发,聊聊RxJava,flutter开发实战详解pdf

android 程序员 移动开发

仿微信视频通话大小视图切换(SurfaceView实现),面试官6个灵魂拷问

android 程序员 移动开发

从零开始仿写一个抖音App——日志和埋点以及后端初步架构

android 程序员 移动开发

作为一名Android面试官,这些面试官常问的开发面试题你都掌握好了吗?(1)

android 程序员 移动开发

从BAT这种公司平薪跳槽头条,是否值得?,android开发实例大全

android 程序员 移动开发

从面试无人问津到手拿百度offer,还原一段野生程序员的成长经历

android 程序员 移动开发

作为一名Android开发者,你有过迷茫吗?,面经解析

android 程序员 移动开发

今日头条 Android '秒' 级编译速度优化,我的腾讯安卓面试经历分享

android 程序员 移动开发

今日头条APK瘦身之路,kotlin教程pdf下载

android 程序员 移动开发

作为一名面试者你应该知道的【上-带大厂面试题】,android组件化开发与sdk

android 程序员 移动开发

我以为对jvm性能调优很了解,直到我到阿里面试完之后

Java 程序员 JVM

人手必备的Jetpack操作手册来了!针对性解决Jetpack组件问题(1)

android 程序员 移动开发

人都傻了!看完这份字节跳动师兄给我的程序员面试笔记,只能说一句牛啊

android 程序员 移动开发

Allegro 如何将运行 GCP 数据流管道的成本降低 60%_架构_InfoQ精选文章