AIOps新应用:为大数据批处理任务配置最佳云资源

428 阅读6分钟
原文链接: mp.weixin.qq.com

作者|马明华

编辑|Vicky 简介

为大量重复运行的大数据计算任务选择最佳的云资源配置是困难的,因为云平台可提供数十种虚拟机实例类型和各种集群大小的选项。选择的不好可能会显著降低运行性能并使平均运行成本增加2-3倍,最差情况下甚至达到12倍。为解决这一挑战,Yale和MS等的学者提出CherryPick系统,利用贝叶斯优化为各种大数据计算任务构建性能模型,只需几次搜索,就能准确的找出最佳或接近最佳的配置。在AWS EC2上对五个大数据计算任务的实验表明,CherryPick有45-90%的概率找到最佳或接近最优的配置,与现有解决方案相比,可节省高达75%的搜索成本。

背景

运行在云上的大数据分析任务变得越来越重要。现有的大数据分析技术包括map-reduce、SQL式查询语言、深度学习。这些大数据分析应用需要相似的计算结构,即VM集群。然而,VM集群的配置有很多可供选择的组合,包括CPU、内存、磁盘、网络。这样为大数据分析任务选择一个合理的云配置变得格外重要。例如,一个糟糕的配置可能使得平均运行成本增加12倍。如下图所示,微软报告显示有40% 的Bing核心任务为周期性重复运行的,因此为重复运行的大数据分析任务选择合理的配置能有效的降低成本,提升运行性能。

挑战

  1. 准确性:计算任务的运行时间与云实例的资源、输入的工作负载、内部工作流程和计算程序的配置有着复杂的关系。直接建模这种关系是很困难的。此外,诸如网络拥塞等会引入大量噪声干扰最优配置的选择。

  2. 低开销:对最佳云配置的暴力搜索有很大的开销。计算任务的开发人员经常面临众多的云配置选择。例如,Amazon EC2和Microsoft Azure提供40多种具有各种CPU,内存,磁盘和网络选项的VM实例类型。谷歌提供18种类型,并允许自定义虚拟机的内存和CPU核心数量。此外,开发人员还需要选择集群大小。

  3. 适应性:大数据应用程序在其数据处理流程中具有不同的内部体系结构和依赖性。手动为每个应用程序性能模型构建内部结构是不可扩展的。

设计思想

应对上述挑战,作者提出CherryPick系统,能够发现最佳或接近最优的云配置,可最大限度地降低云的使用成本,保证重复运行的计算任务性能并减少其搜索配置的开销。CherryPick的核心思想是建立一个精确的性能模型,它能够实现低开销和适应性,只需要少量搜索且不需要将计算任务特定的配置嵌入到建模中。

CherryPick利用贝叶斯优化(BO),一种优化的黑盒方法。由于它是非参数的,因此它没有任何需要预定义的函数格式。 BO估计每个候选云配置下的成本和运行时间的置信区间(实际值应该以多高概率落入的范围)。随着更多样本,置信区间的大小得以缩减。 CherryPick可以判断哪个云配置应该更多的采样,以便不确定性接近最优化。CherryPick使用置信区间来决定何时停止搜索。

为什么选择使用BO方法?有以下由于三个原因:

  1. BO不将函数限制为任何预定义格式,因为它是非参数的。这种特性使得CherryPick可用于各种应用程序和云配置。

  2. BO通常需要少量样本就能找到接近最优的解决方案,因为BO将其搜索重点放在具有最大可改进预期的区域。

  3. BO可以容忍不确定性。 CherryPick面临两个主要的不确定因素:(i)由于样本数量少,CherryPick的性能模型不完善,通常会有很大的预测误差; (ii)由于跨应用程序等的资源多路复用,即使对于相同的计算任务,云上也可能出现不稳定的运行时间。BO可以定量地定义性能模型的不确定区域。即使在模型不准确的情况下,它计算的置信区间也可用于指导搜索决策。

实验

作者在Amazon EC2上的66个配置,使用5个广泛使用的基准测试计算任务评估CherryPick。 CherryPick有45%-90%的可能选择最佳配置,否则可以找到接近最优的解决方案(中位数在5%以内),而梯度下降和随机搜索等替代解决方案最多需要延长75% 的运行时间,搜索成本增加45%。我们还将CherryPick与Ernest 进行了比较,结果展示了CherryPick可以将搜索时间缩短90%,将SQL查询的搜索成本提高75%。

结论

这篇文章提供了CherryPick系统,高精度和低开销的选择具有近乎最优的云配置。 CherryPick能自适应地自动构建针对特定应用和云配置的性能模。我们在Amazon EC2上使用5个广泛使用的基准测试计算任务的实验表明,CherryPick选择最佳或接近最优的配置,其搜索成本比现有解决方案低得多。

开源工具:有兴趣的读者可以关注本公众号之后回复: 2018113,获取链接。

公众号作者点评

这篇工作使用了BO的优化方法,总体上是很solid的系统工作。我觉得这个重复运行的计算任务最优配置选择问题也可以尝试用强化学习解决。另外这篇工作提供的是黑盒方法,只是找到好的Configuration,而不能回答开发人员关心的更加具体的问题,比如是否需要足够大的内存来对硬盘数据进行Cache?如果将网络带宽从1Gbps升级到10Gbps,计算任务能获得多少的性能提升?这些问题在SOSP17的文章中进行了讨论,有兴趣的读者可以关注本公众号之后回复: 2018112,获取链接并阅读。

论文题目:CherryPick: Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics

论文作者:Omid Alipourfard(Yale),Hongqiang Harry Liu, Jiangshu Chen(Microsoft Research),Shivaram Venkataraman(UCB),Minlan Yu(Yale),Ming Zhang(Alibaba)

由于篇幅所限,部分内容未在文中详细描述,有兴趣的读者可以 关注本公众号之后回复:2018111 ,下载原文后阅读。

长按二维码     关注我们