银行批处理时间预测 | Batman框架通过在线预测和离线预测,实现资源的自动扩缩容

批处理任务时间预测

由必示科技携手清华大学、麦吉尔大学、天津大学、光大银行信息科技部合作完成的项目展示论文《批处理任务时间预测》(Batch Job Run Time Prediction for Auto-scaling in the Cloud)获人工智能领域顶级国际会议AAAI-20 Workshop on Cloud Intelligence收录。AAAI-20(全称The Thirty-Fourth AAAI Conference on Artificial Intelligence)由美国人工智能协会主办,被中国计算机学会(CCF)列为A类会议。此次会议在纽约举办,有效投稿7737篇,最终录用1591篇,总录用率约为20.6%。本文发表于2020年AAAI的云智能研讨会,以下是主要内容分享,欢迎共同探讨。

批处理任务在云服务器上的运行时间对于操作人员来说非常重要,他们需要根据任务的运行时间,来合理分配云服务器的资源。为了能够使用有限的资源更加灵活地管理批处理任务,本文设计了一个Batman框架,通过学习批处理任务运行时间的上下基带,对在线的批处理任务的运行时间做出预测,根据预测的结果对云上的资源进行自动扩缩容。使用Batman框架,批处理任务可以在运行时间的上下基带之内被加速。

适用场景

随着云计算的快速发展,越来越多的行业需要在云上运行批处理任务。批处理任务,比如大数据分析,通常会运行很长时间并且周期性地执行(比如每天执行)。为了提高资源利用率,最常见的策略就是以协同定位模式部署批处理作业和在线服务。不可避免地,由于任务的复杂环境,不同天执行的批处理任务的运行时间长短不同。一般来说操作人员对于批处理任务的运行时间有一个预期,因为运行时间对于业务操作至关重要。如果运行时间超过了操作人员的预期,他们需要手动地给当前系统扩容,即分配更多的资源(CPU核心或者内存),重新启动批处理任务的剩余部分。这个过程是劳动密集型的,而且容易出错。因此,自动地根据批处理任务的运行时间来管理它们是一项重要的且有意义的工作。

通过调研中国顶级银行IT系统的现状,我们观察到批处理任务的运行时间有某些特定的特征,比如周期性和趋势。操作人员不为这些任务设置特定的截止时间,但是他们关心这些任务通常需要多长时间完成,这被称为运行时间上下基带。为了实现全自动,本文设计的系统可以预测批处理任务的运行时间上下基带,这又称为离线预测;同时可以对正在运行的批处理任务做在线运行时间预测,根据在线预测和离线预测的结果比较,对分配的资源做扩缩容。

主要挑战

  • 精确的离线预测:

相同的运行环境下,批处理任务的工作负载对任务的运行时间会有很大影响。另外,一个批处理任务包括了一系列子任务,它们之间可能有复杂的依赖关系。这些任务的编排顺序会随着时间变化。因此,运行时间的上下基带可能因工作负载和日期的不同而不同,这需要准确预测。

  • 敏捷的在线预测:

由于批处理作业和在线服务的共存,准确预测批处理作业的运行时间是一个挑战。在线服务的工作负载值通常会出现峰值和波动,这对于服务质量有较大影响。所以,运行批作业的某些资源可能偶尔被在线服务占用以确保在线服务质量稳定。因此,批处理任务的运行时间可能会有很大差异。为了在批处理任务需要资源时可以很快扩展资源,敏捷地在线预测是很有必要的。

  • 自动扩缩容策略:

如果批处理任务的运行时间超过了上下基带,必须要设计一个自动扩缩容方法来确保任务按时完成。这种方法应该足够鲁棒,可以分配最少的资源,并按时完成批处理作业。

解决方法

本文设计的**Batman框架可以精确预测批处理任务的运行时间并且自动调整云分配的资源。**首先,为了精确预测运行时间上下基带,本文定义了关键路径的模式:关键路径是一系列子任务,对于批处理作业的每次运行,这些子任务的运行时间之和在所有工期中最长。接着,我们使用了一个CNN-LSTM模型来预测在线批处理任务的运行时间,模型的输入是从批处理任务运行环境中收集到的系统指标(CPU利用率,内存使用率等等)。最后,如果在线预测的时间比上下基带要大,一个自动扩缩容策略会用最少的资源加速任务在规定的时间内完成。

系统设计

银行批处理时间预测 | Batman框架通过在线预测和离线预测,实现资源的自动扩缩容_第1张图片

如图所示,本文的框架包含了一个主节点和一些工作节点。一个节点是一台机器或者虚拟机。pod是最小的创建和部署单元,由一个或多个紧密耦合并共享资源的容器组成。批处理作业在工作节点的pod中运行。

  • 离线预测:

根据银行系统的历史批处理作业记录,观察到批处理作业的运行时间高度依赖于其子任务。这些子任务的依赖关系非常复杂。具体来说,一个子任务可能依赖于另一个或一些子任务的执行,也可能在特定的时间才会执行。因此,本文生成了一个由子任务组成的关键路径,即该路径累计并表示批处理作业每次运行的总最长持续时间。关键路径的模式可以用它的周期来概括。在历史批处理任务运行时间和关键路径的输入下,Batman框架采用长短时记忆(LSTM),可以预测运行时间上下基带。

  • 在线预测:

在批处理任务的在线模式下,Batman框架可以根据周期匹配到关键路径。本文观察到从批处理任务的运行环境中收集的系统指标可以表征批处理任务的运行时间。然而,这个关系是复杂的、非线性的。输入批处理任务的配置(比如工作节点和pod的数量)、系统指标、关键路径上每个子任务的运行时间、每个子任务的执行日期(即日、周、月等信息),Batman框架利用卷积神经网络(CNN)提取输入特征,结合LSTM来支持在恒定时间内的序列预测。

  • 自动扩缩容:

对于一个运行的批处理任务,Batman只预测一次时间上下基带,用B表示。Batman将批处理任务的在线预测结果用T表示。如果T − B > γ, γ是预设的阈值,Batman框架将根据在线预测的结果,控制系统扩大pod或工作节点数量。

实验结果

本文根据数据的变异系数(CoV)分布,从银行的样本中选择了八个批处理任务的数据集。如表1所示,数值越大,数据集的波动越大,预测就越困难。本文实现了Batman的原型,并根据其他五种基线方法对离线预测模型进行了评估,以均方误差(MSE)的平均对数作为度量标准来衡量这些预测模型的准确性。MSE的值越小,预测精确度越高。使用一个小时的预测时域来进行试验。如图2所示,将Batman和五种算法比较,即核回归(KR)、核岭回归(KRR)、epsilon-SVR、集成方法(KRR、SVR、LR)。可以看出,Batman框架比其他所有算法在数据集上表现都要好。使用Batman框架,可以稳健地预测批处理任务的运行时间。

银行批处理时间预测 | Batman框架通过在线预测和离线预测,实现资源的自动扩缩容_第2张图片

银行批处理时间预测 | Batman框架通过在线预测和离线预测,实现资源的自动扩缩容_第3张图片

翻译:曹修琪 校对:李依林

你可能感兴趣的:(技术干货,人工智能,机器学习,运维,数据挖掘)