[论文解读] Predicting Scheduling Failures in the Cloud
本文提出了一种基于 Google 云集群历史任务和资源利用率数据的统计故障预测模型,可主动识别调度故障发生前的潜在问题。通过应用随机森林模型预测任务结果,精确率达到 97.4%,召回率达到 96.2%,从而实现早期重调度,在模拟中将任务失败率降低高达 40%,在 Hadoop 上通过 Amazon EMR 部署后,任务失败率降低 45%,额外开销不足 5 分钟。
Cloud Computing has emerged as a key technology to deliver and manage computing, platform, and software services over the Internet. Task scheduling algorithms play an important role in the efficiency of cloud computing services as they aim to reduce the turnaround time of tasks and improve resource utilization. Several task scheduling algorithms have been proposed in the literature for cloud computing systems, the majority relying on the computational complexity of tasks and the distribution of resources. However, several tasks scheduled following these algorithms still fail because of unforeseen changes in the cloud environments. In this paper, using tasks execution and resource utilization data extracted from the execution traces of real world applications at Google, we explore the possibility of predicting the scheduling outcome of a task using statistical models. If we can successfully predict tasks failures, we may be able to reduce the execution time of jobs by rescheduling failed tasks earlier (i.e., before their actual failing time). Our results show that statistical models can predict task failures with a precision up to 97.4%, and a recall up to 96.2%. We simulate the potential benefits of such predictions using the tool kit GloudSim and found that they can improve the number of finished tasks by up to 40%. We also perform a case study using the Hadoop framework of Amazon Elastic MapReduce (EMR) and the jobs of a gene expression correlations analysis study from breast cancer research. We find that when extending the scheduler of Hadoop with our predictive models, the percentage of failed jobs can be reduced by up to 45%, with an overhead of less than 5 minutes.
研究动机与目标
- 研究云环境中任务和作业失败的频率与特征,特别是 Google 生产集群中的情况。
- 确定是否可以利用云日志中的历史执行和资源利用率数据来预测调度结果。
- 评估将故障预测集成到任务调度器中所带来的性能收益,例如缩短执行时间并提高作业完成率。
- 展示在 Hadoop 等真实世界云框架(如 Amazon EMR)中,预测性重调度的实际可行性与影响。
提出的方法
- 从 Google 生产追踪数据中提取任务和作业属性,包括执行时间、调度时间、资源使用情况、机器工作负载以及调度约束条件。
- 通过日志文件中的状态指示符(如 'Failed'、'Evicted'、'Lost' 或 'Killed')识别失败的任务和作业。
- 将任务级失败映射到作业级结果,以分析依赖任务之间的级联失败影响。
- 在提取的特征上训练并评估多种统计模型——决策树、提升法、广义线性模型、条件推断树、随机森林和神经网络——以预测调度结果。
- 将表现最佳的模型(随机森林)集成到 GloudSim 和 Hadoop 调度器中,以模拟预测故障的早期重调度。
- 通过完成任务数、作业完成率和执行时间减少等指标,测量在仿真和实际部署中性能的提升。
实验结果
研究问题
- RQ1在云环境中,调度任务或作业失败、被驱逐、丢失或被终止的频率如何?
- RQ2是否可以利用集群日志文件和历史执行数据来预测调度结果?
- RQ3通过预测调度故障并实现早期重调度,可以实现哪些性能收益?
- RQ4将故障预测集成到 Hadoop 等真实世界调度器中,对作业完成率和系统开销有何影响?
主要发现
- 在 Google 数据集中,42% 的作业和 40% 的任务未能成功完成,失败通常与长时间等待和执行时间相关。
- 随机森林模型在预测任务调度故障方面实现了 97.4% 的精确率和 96.2% 的召回率,优于其他模型(包括神经网络)。
- 在 GloudSim 模拟中,基于预测的重调度方法使完成任务数最多提升 40%,并减少了执行时间。
- 在 Amazon EMR 上通过 Hadoop 部署后,预测性调度器将作业失败率降低了高达 45%,额外开销不足 5 分钟。
- 本研究证明,主动进行故障预测与重调度可显著提升云系统的可靠性和效率。
- 结果表明,将故障预测集成到云调度器中,可在不带来过高性能成本的前提下提升服务质量(QoS)。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。