A Case for Task Sampling based Learning for Cluster Job Scheduling

来源:NSDI ‘22

摘要

背景

精确定预估任务运行时间为有效的任务调度提供遍历。现有的任务调度基于历史数据学习,使用任务历史信息预估新任务。但是,由于部署模式转向快速迭代,快速部署这种方式不再精确

本文工作

  1. 探索了实时学习任务运行时属性,通过主动采样和调度每个job的部分task,并探究这种方式的可行性和限制。这种方法利用了相同的任务在运行时的相似性。
  2. 在Azure上使用了3个生产集群,有不同的特性和任务分配。实验表明本文方法更为精确。同时减少了任务完成时间,相对以前的方法提升了1.28x/1.56x/1.32x。
  3. 同时将基于采样的学习拓展到DAG任务的调度中,也取得了比先前基于历史信息更快的任务完成时间。

Introduction

问题背景

集群中大数据任务的调度问题。

先前工作

较多的基于历史信息的学习算法,基于此进行任务调度。

这样的方法基于几个设定的前提条件:

  1. 这些job是重复性的,它们会多次执行;
  2. 相似job运行时表现出的特性相同。

⭐但是,先前工作的假设前提是有问题的:

  1. 很多job不是重复性的;
  2. 重复性的job每次运行时表现出的特性可能不会相同;
  3. 历史作业运行时特征具有相当大的变化。

本文工作

一种方法来在线学习分布式作业的运行时属性,以促进集群作业调度。

Motivation

基于集群中分布式任务关键信息的检测。

  1. 一个job的空间维度,或者说它包含的许多task信息;
  2. job的task(在同一阶段)通常执行相同的代码,并处理大小相似的不同数据。

上述观测到的信息是如何使用的呢?

首先,某个job的task得到了首先调度,然后基于该task,为其他的task提供调度指导。将这种学习方法称为“SLearn”,即“learning in space”。

这种方式避免了先前工作——基于历史信息学习进行调度的局限性。

Challenges of SLearn

  1. 预测精确度受到不同task运行时属性的影响;
  2. 将job的剩余task延迟到采样任务完成后再调度可能会影响作业的完成时间。

Comprehensive Comparative Study

本文对基于历史的学习(LIT, learning in time)和基于采样的学习(LIS, learning in space)进行综合的分析,提出下述问题:

  1. Learning in space是否比Learning in time更加精确❓
  2. 如果时,那是否可以提高剩余task的表现,来弥补上述的问题(剩余task需要依赖首先受到调度的task的信息,对前序task采样后再进行调度,影响作业完成时间)❓

并进行回答

问题1:通过定量分析,基于三个生产集群的job追踪(两个Google Cluster Trace数据集和一个2Sigma数据集),进行了回答。

问题2:设计了一个通用的job调度器,基于job运行时预估,去优化性能表现。将不同的预测方案接入调度器,如LIT和LIS。

Contribution

  • 基于三个生产集群追踪数据分析,通过历史表征数据来预测分布式job未来的特性,是不准确和不稳定的。
  • 提出SLearn,使用job的空间维度进行采样,对线上job的运行时属性进行学习。
  • 通过定量、跟踪和实验分析,证明了SLearn可以比基于历史的方案更准确地预测作业的运行时属性。对于2Sigma、Google 2011和Google 2019集群追踪的数据集,预测结果的中值误差均有显著的优化。
  • 在Azure上150个节点的集群实验中发现,对作业任务进行抽样来学习作业运行时属性,虽然延迟了作业剩余任务的调度,但可以通过提高精度来弥补性能损失,减少平均job完成时间。
  • 展示了基于采样的学习可以被拓展到DAG job的调度中,实验表明相对于基于历史的学习策略,基于采样的学习可以缩短作业完成时间。

本文的核心点在于预测,那么具体预测什么呢?下图是先前基于历史学习技术进行预测的所做的工作:

image-20220514165707558

本文的将预测结果用于集群调度,使得调度结果满足SLOs要求。

SLEARN - Learning in Space

学习模块与调度是解耦的。

流程概述

  1. 在job下发后,预测器首先调度一个样本task,叫做pilot tasks,其产生的数据用于算法去学习job的运行时属性。
  2. 学习到的信息被注入集群job调度器,调度器执行多种策略以满足SLOs要求。

SLEARN细节

本文提出的方案可以有效的兼顾job的空间属性。

下图展示了LIT和LIS的不同:

image-20220514171138766

简单总结

  • 问题背景:特定的生产集群大数据处理任务的调度问题。

  • 主要方法:针对基于历史信息预测的调度方法的不足,提出基于时空维度信息预测的调度方法。

  • 评价指标:job的完成时间,少即使好。

  • 实验:使用了三个开源生产集群中的Trace数据,在Azure上150个node进行实验。

自认为是幻象波普星的来客
Built with Hugo
主题 StackJimmy 设计