计算机应用   2017, Vol. 37 Issue (10): 2754-2759  DOI: 10.11772/j.issn.1001-9081.2017.10.2754
0

引用本文 

张奕, 程小辉, 陈柳华. 虚拟云下满足多重约束的时限敏感任务调度算法[J]. 计算机应用, 2017, 37(10): 2754-2759.DOI: 10.11772/j.issn.1001-9081.2017.10.2754.
ZHANG Yi, CHENG Xiaohui, CHEN Liuhua. Multi-constraints deadline-aware task scheduling heuristic in virtual clouds[J]. Journal of Computer Applications, 2017, 37(10): 2754-2759. DOI: 10.11772/j.issn.1001-9081.2017.10.2754.

基金项目

国家自然科学基金资助项目(61662017);高等学校科学技术研究项目(2013YB113);广西重点实验室嵌入式技术和智能系统基金资助项目(桂林理工大学)

通信作者

张奕, zywait@glut.edu.cn

作者简介

张奕(1977-), 女, 江西九江人, 副教授, 博士, CCF会员, 主要研究方向:面向服务的计算、实时计算;
程小辉(1961—), 男, 江西樟树人, 教授, 博士研究生, CCF会员, 主要研究方向:物联网;
陈柳华(1987-), 男, 广东湛江人, 博士, 主要研究方向:分布式计算

文章历史

收稿日期:2017-04-17
修回日期:2017-07-10
虚拟云下满足多重约束的时限敏感任务调度算法
张奕1,2, 程小辉1,2, 陈柳华3    
1. 桂林理工大学 信息科学与工程学院, 广西 桂林 541004;
2. 广西嵌入式技术与智能系统重点实验室(桂林理工大学), 广西 桂林 541004;
3. 克莱姆森大学 电子与计算机工程系, 南卡罗来纳州 克莱姆森市 29631, 美国
摘要: 目前以虚拟云服务平台作为强大计算平台的虚拟云环境下,许多现存调度方法致力于合并虚拟机以减少物理机数目,从而达到减少能源消耗的目的,但会引入高额虚拟机迁移成本;此外,现存方法也没有考虑导致用户高额支付成本的成本因子影响。以减少云服务提供者能源消耗和云服务终端用户支付成本为目标,同时保障用户任务的时限要求,提出一种能源与时限可感知的非迁移调度(EDA-NMS)算法。EDA-NMS利用任务时限的松弛度,延迟宽松时限任务的执行从而无需唤醒新的物理机,更无需引入虚拟机动态迁移成本,以达到减少能源消耗的目的。多重扩展实验结果表明,EDA-NMS采用成本和能耗有效的虚拟机实例类型组合方案,与主动及响应式调度(PRS)算法相比,在减少静态能耗的同时,能更有效地满足用户关键任务的敏感时限并确保用户支付成本最低。
关键词: 虚拟云    实时任务    调度    关键度    能源可感知    
Multi-constraints deadline-aware task scheduling heuristic in virtual clouds
ZHANG Yi1,2, CHENG Xiaohui1,2, CHEN Liuhua3     
1. School of Information Science and Engineering, Guilin University of Technology, Guilin Guangxi 541004, China;
2. Guangxi Key Laboratory of Embedded Technology and Intelligent Systems (Guilin University of Technology), Guilin Guangxi 541004, China;
3. School of Electrical and Computer Engineering, Clemson University, Clamson, South Carolina 29631, USA
Abstract: Many existing scheduling approaches in cloud data centers try to consolidate Virtual Machines (VMs) by VM live migration technique to minimize the number of Physical Machines (PMs) and hence minimize the energy consumption, however, it introduces high migration overhead; furthermore, the cost factor that leads to high payment cost for cloud users is usually not taken into account. Aiming at energy reduction for cloud providers and payment saving for cloud users, as well as guaranteeing the deadline of user tasks, a heuristic task scheduling algorithm called Energy and Deadline-Aware with Non-Migration Scheduling (EDA-NMS) was proposed. The execution of the tasks that have loose deadlines was postponed to avoid waking up new PMs and migration overhead, thus reducing the energy consumption. The results of extensive experiments show that compared with Proactive and Reactive Scheduling (PRS) algorithm, by selecting a smart VM combination scheme, EDA-NMS can reduce the static energy consumption and ensure the lowest payment with meeting the deadline requirement for key user tasks.
Key words: virtual cloud    real-time task    scheduling    criticality    energy-aware    
0 引言

成千上万的物理主机所构成的云数据中心消耗巨大的能源, 为了提高能源的有效性, 面向云应用场景的绿色计算和能源保护获得了大量关注[1]。其中, 将应用与底层复杂环境相隔离和抽象的虚拟化技术, 是近年来减少能源消耗方面最有发展前景的技术之一。以虚拟化技术支撑的虚拟云服务平台作为强大的计算平台, 调度执行不同用户提交的任务集, 能在一定程度上减少物理主机数量、提高能源利用的有效性。虚拟云服务平台上大部分应用是对结果的反应时间具有时限约束的实时应用程序[2], 即组成此类应用的任务具有严格时限需求且需要可预测性保证。此类任务的到达时间是动态的, 任务的执行周期预测是困难的甚至是不可能的[3]。在虚拟机资源集上调度从不同用户提交的具有时限约束的任务集问题, 是获取能源有效性的关键。同时, 如何达到最小化某个任务完成时间或系统总完成时间的目标, 也是获取高性能的关键因素。但能源消耗和系统性能之间存在固有矛盾, 仍没有一个解决方案可以在任务完成时间和能量消耗两个目标对象上同时取得最优值。除此之外, 虚拟云环境下用户需租用云资源, 同时需考虑经济成本因素[4]

满足敏感时限、成本与能耗多重约束条件的调度问题是NP完全问题, 无法找到最优解, 只能采用启发式方法。到目前为止, 以往各种启发式方法不能同时满足以上多重约束条件, 不能直接重用。如何权衡系统性能与成本、能耗之间的关系, 使用户以最低的成本和能耗获得最佳的系统性能, 仍是目前虚拟云计算环境下的一个挑战。针对以上挑战和关键问题, 本文提出一种启发式任务调度算法——能源和时限可感知的非迁移调度(Energy and Deadline Aware with Non-Migration Scheduling, EDA-NMS)算法。EDA-NMS具有无需虚拟机迁移的特点, 且满足能耗、成本与时限可感知多重约束。EDA-NMS在无需唤醒新的物理主机情况下, 选择成本有效的虚拟机实例, 通过主动延后具有宽松时限条件的任务开始执行时间, 保障严格时限条件的任务完成时间, 达到减少能源消耗的目的, 同时避免了虚拟机动态迁移引入的迁移成本消耗。为了最大化满足用户不同优先级任务时限需求, 提出了实时关键度的概念。关键度是除了软、硬实时之外的另一维度的任务特征, 用于测量任务失败对系统性能稳定性的影响程度(任务失败对系统稳定性影响越大, 任务的关键度越高)[5]。如果两个任务时限相同, 则优先调度高关键度任务, 保障系统性能的稳定性。

1 相关研究

大部分现存的云调度算法, 如:Hadoop MapReduce的先进先出(First In First Out, FIFO)调度[6], Facebook公平调度[7], Yahoo的性能调度等[8], 不支持软实时调度或服务质量(Quality of Service, QoS)条件约束。文献[9]提出的实时调度策略在任何时刻在每个虚拟机实例内只允许执行一个任务, 随着任务数目增加, 所需的虚拟机实例将大量增加而造成可观的静态能源消耗。文献[3]实现的平行软实时调度, 虽然考虑了软实时和同步问题, 但没有考虑最大化单台物理机的资源利用率。文献[4]提出的水平滚动优化策略根据任务的时限不同将任务分配到不同的虚拟机实例, 但此算法没有充分考虑实时任务的其他特性(如:关键度)。文献[10]提出的虚拟机调度算法关注提高到达任务的录用率, 却忽略了在虚拟机上运行的负载类型, 从而影响调度算法的QoS保证率。因此, 以上的研究成果均不能直接重用以满足能源、成本和时限多重约束和优化目标。

总能源消耗包含两部分:静态能源消耗和动态能源消耗。静态能耗是物理主机节点在空闲状态下所消耗的能源; 而动态能耗则是物理主机节点在繁忙状态下所消耗的能源。基于动态电压频率调整(Dynamic Voltage and Frequency Scaling,DVFS)的调度算法为任务提供最小的CPU利用率, 达到最大限度减少动态能耗的目的[11-12]。文献[13]提出的能源有效自适应调度算法(Energy-Efficient Adaptive Scheduling Algorithm, EASA)能够根据系统负载自适应地调整所提供的电压, 有效地减少了动态能耗。以往大部分基于电压调节的研究工作重点关注的是最大限度地减少动态能耗, 然而即使运行的是低速任务, 静态能耗仍会持续很长的时间。部分能源可感知调度算法(如文献[2, 9-10, 14-15]算法), 试图通过进一步利用虚拟机动态迁移技术合并虚拟机以减少物理机数量, 达到减少静态能耗的目的, 但却会引入高额迁移成本消耗。本文提出的启发式任务调度算法与以往研究不同的是:通过选择不同计算性能的虚拟机实例来调节实时任务的执行速度, 而无需在物理主机节点之间动态迁移虚拟机, 能达到减少系统开销并达到减少静态能耗的目的。

2 系统模型与体系结构 2.1 系统体系结构

图 1所示, 虚拟云环境下的组合调度体系结构由全局调度器(Global Scheduler, GS)与局部虚拟机服务供应者集合(Local VM Providers, LP)两个核心部件和一些子组件(性能监控器, 可调度性分析器和成本函数)组成。

图 1 可组合调度体系结构 Figure 1 Compositional scheduling architecture

云端服务供应者(Cloud Service Provider, CSP)拥有大量数据中心和服务器集群, 终端用户通过分布式方式访问CSP提供的服务, 并按规定付费。CSP通过LP为终端用户提供服务, 即LP负责给用户任务分配云端资源:

$ LP = \{ l{p_1}, l{p_2}, \cdots, l{p_n}\} $ (1)

lpj与某用户uj之间一一对应, 即lpj绑定于特定用户uj, 并拥有物理主机集合PMjuj提供所需的计算能力, 存储能力和满足服务级协定(Service Level Agreement, SLA)的不同服务。

$ P{M^j} = \{ pm_1^j, pm_2^j, \cdots, pm_k^j\}; k = 1,2, \cdots, \left| {P{M^j}} \right| $ (2)

lpj管理和监视在不同物理主机上启动的属于uj的虚拟机实例集合VMj, 直至实例关闭。VMj给终端用户uj提供服务, 保证用户上下文安全性和私密性。

$ V{M^j} = \{ VM_1^j, VM_2^j, \cdots, VM_k^j\}; k = 1, 2, \cdots, \left| {V{M^j}} \right| $ (3)

其中:VMkj表示属于lpj且以物理主机pmkj为宿主机的虚拟机实例集合。虚拟机实例以小时为单位计费, 虚拟机实例只在空闲或到达完整的整数小时数后关闭。

$ VM_{_k}^{^j} = \{ vm_{k1}^j, vm_{k2}^j, \cdots, vm_{kr}^j\}; r = 1, 2, \cdots, \left| {V{M_k}^j} \right| $ (4)

其中:vmkrjpmkj上的第r台虚拟机实例。

2.2 任务模型及特性

任务模型及特性所提供的信息作为调度算法的输入。任务分为实时与非实时两种类型。任务可以并行、独立或异步执行, 每一任务不能再分解, 且只能在一种类型的虚拟机实例上执行。属于某用户uj提交的任务集Tuj表示为: $ {T^{{u_j}}} = \{ \tau _1^{{u_j}}, \tau _2^{{u_j}}, \cdots, \tau _m^{{u_j}}\} $。任务τiuj由四元组参数描述, $ \tau _i^{{u_j}} = (at_i^{{u_j}}, \tilde l_i^{{u_j}}, d_i^{{u_j}}, k_i^{{u_j}}) $, 其中:

1) atiuj是任务τiuj到达时间。

2) $ \tilde l_i^{{u_j}} $是任务τiuj的长度, 即任务的指令数(如百万指令数(Million Instructions, MI))。由于调度执行前无法确定任务的长度, 可通过预知的长度下界(liuj)-和上界(liuj)+利用间隔数表示$ \tilde l_i^{{u_j}} $[5, 18-19]: $ \tilde l_i^{{u_j}}{\rm{ = }}\left[{{{(l_i^{{u_j}})}^-}, {{(l_i^{{u_j}})}^ + }} \right] $

3) diuj是任务τiuj的时限, 且diujatiuj。本文中时限diuj是用户指定的性能需求。

4) kiuj∈{K1, K2, K3}表示任务τiuj的关键度。关键度设定为系统组件对抗故障的保证级别[20]。本文从低到高设定低中高3个通用关键度级, 具有更高关键度的任务意味着需要更紧急响应。

2.3 任务静态松弛度模型

为了满足任务多样性需求, 全局调度器中存在多种任务队列。实时任务与非实时任务分别分派到全局等待队列的实时队列(Real-Time Queue, RTQ)与非实时任务队列(Non-Real-Time Queue, NRTQ)中。GS作为接口负责接收用户请求并将任务分配到LP。在RTQ中, 一旦新实时任务τiuj到达, 按其静态松弛度值ξiuj升序排序。ξiuj描述τiuj的紧急程度, 具有最小静态松弛度值的实时任务优先调度:

$ {\xi _i}^{{u_j}} = \frac{{d_i^{{u_j}}-{t_c}}}{{{{(l_i^{{u_j}})}^ + }}} $ (5)

其中:tc表示当前时间。

2.4 任务完成时间预测模型

虚拟机实例vmkrj的CPU容量由$ {\widetilde {cap}_{vm_{kr}^j}} $表示, 调度之前无法确切获取$ {\widetilde {cap}_{vm_{kr}^j}} $的实际值, 但可获得其上下边界值。属于vmkrj的任务用τikrj表示, τikrj的实际执行时间$ \widetilde {et}_{ikr}^j $在调度之前不能确定。利用间隔数理论预估这些不确定参数值[5, 19]

$ {\widetilde {cap}_{vm_{kr}^j}}{\rm{ = }}\left[{cap_{vm_{kr}^j}^-, cap_{vm_{kr}^j}^ + } \right] $ (6)

其中: $cap_{vm_{kr}^j}^- $$ cap_{vm_{kr}^j}^ + $是虚拟机vmkrj的最小和最大CPU性能。

$ \widetilde {et}_{ikr}^j{\rm{ = }}\frac{{\widetilde l_i^{{u_j}}}}{{{{\widetilde {cap}}_{vm_{kr}^j}}}} = \left[{\frac{{{{\left( {l_i^{{u_j}}} \right)}^-}}}{{cap_{vm_{kr}^j}^ + }}, \frac{{{{\left( {l_i^{{u_j}}} \right)}^ + }}}{{cap_{vm_{kr}^j}^-}}} \right] $ (7)
$ \widetilde {ft}_{ikr}^j = \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j $ (8)

其中: $ \widetilde {st}_{ikr}^j $$ \widetilde {ft}_{ikr}^j $分别是任务τikrj的估计开始时间和完成时间。

$ \widetilde {st}_{ikr}^j{\rm{ = max}}\left\{ {{{\left( {ft_{ikr}^j} \right)}^b}, at_i^u} \right\} $ (9)

其中:(ftikrj)b是分配在vmkrj上在任务τikrj之前执行的前一任务对应完成时间。

定义1  当新到达实时任务τiuj插入到全局等待队列之后[23]:

情景1  如果所有排在τiuj之后的实时任务都有宽松时限, 将不会出现任务错过其时限情况。

图 2 实时任务插入 Figure 2 Insertion of a new real-time task
$ \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j \le d_i^{{u_j}}, 且\; \forall \tau _l^{{u_j}} \in T_{vm_{kr}^j}^{i * }, \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j \le d_l^{{u_j}} $

其中: $ T_{vm_{kr}^j}^{i * } $是在虚拟机vmkrj上排在任务τiuj之后执行的任务集合。

情景2  如果排在τiuj之后的部分任务具有严格的时限, 那么将发生某些任务错过其规定时限的情况。

$ \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j \le d_i^{{u_j}}, 且\; \exists \tau _l^{{u_j}} \in T_{vm_{kr}^j}^{i * }, \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j > d_l^{{u_j}} $

情景3  如果排在τiuj之后的大多数任务具有严格的时限规定, τiuj插入后将发生大量实时任务错过其规定时限的连锁反应。

$ \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j \le d_i^{{u_j}}, 且\; \forall \tau _l^{{u_j}} \in T_{vm_{kr}^j}^{i * }, \widetilde {st}_{ikr}^j + \widetilde {et}_{ikr}^j > d_l^{{u_j}} $

全局调度器首先将属于某用户uj的任务分配到局部虚拟机服务供应者lpj。当图 3所示的情景2(图 3(a))或情景3(图 3(b))出现时, lpj将任务传递到性能更高虚拟机实例。如果任务的时限仍不能得到满足, 将启动更多的虚拟机实例直到情景2或情景3不再出现。

图 3 不同γ值下的总能源消耗 Figure 3 Total energy consumption with different γ
2.5 能源消耗模型

物理机pmkj的总能源消耗定义为TEkj包含两部分:静态能耗SEkj和动态能耗DEkjSEkj是物理机pmkj空闲时消耗的能量[14]:

$ SE_k^j{\rm{ = }}\left\{ \begin{array}{l} \frac{{\gamma \cdot ME_k^j}}{{U_k^j}}, \;\;\;U_k^i > 0\\ 0, \;\;\;\;\;\;\;\;\;\;\;\;其他 \end{array} \right. $ (10)

其中:UkjMEkj是物理机pmkj的CPU资源利用率与处于最大CPU资源利用率下能源消耗; γ(0 < γ < 1) 是物理机pmkj的静态能耗SEkj与最大能耗MEkj之间的常量利用率。

从文献[16]可知, 多个模型描述动态能耗DEkj为物理机资源利用率Ukj函数, 但是DEkjUkj关系相对复杂。

$ DE_k^j{\rm{ = (}}ME_k^j{\rm{-}}SE_k^j{\rm{)}} \cdot U_k^j $ (12)
$ \begin{array}{l} TE_k^j{\rm{ = }}SE_k^j + DE_k^j = \left[{\gamma + (1-\gamma ) \cdot {{(U_k^j)}^2}} \right]\frac{{ME_k^j}}{{U_k^j}}{\rm{ = }}\\ \;\;\;\;\;\;\;\;\left[{\gamma + (1-\gamma ) {{(U_k^j)}^2}} \right]\frac{{P_{k\max }^j \cdot {t_{\max }}}}{{U_k^j}} \end{array} $ (13)

其中:tmax是物理机在最大CPU利用率下完成特定任务的时间周期;$ P_{k\max }^j $是在此时间周期内消耗的总能量。

图 3中, 为了突出比较静态能耗对总能耗TEkj增长率的影响, 设γ={0, 0.2, 0.4, 0.8}, 忽略$ P_{k\max }^j $的具体值, 意味着静态能耗占MEkj的比重分别是0%、20%、40%和80%。从图 3可看出, 物理机持续计算较长时间后, 将消耗大量(可观数量)的静态能耗量, 甚至可达到总能耗的70%。

只要系统存在较高的静态能耗, 仅仅减少动态能耗并不能降低总能耗。以往研究集中于合并虚拟机来减轻静态能耗, 然而依赖于网络架构的移植过程引入了高开销。除此之外, 源局部虚拟机服务供应者花费更多计算能力在动态迁移间隔瞬间, 可能导致违反SLA。为了解决这个问题, 本文提出一种任务调度策略:在保证满足大多数任务时限的同时尽可能启动虚拟机实例越少越好, 达到提高CPU资源利用率、减少静态能耗的目的。

3 时限保障调度策略

本文的EDA-NMS调度策略基于第2章提出的可组合调度体系结构, 针对到达任务不同, 执行多种任务调度策略。EDA-NMS先从所有活动虚拟机实例中选择单位时间成本最低的虚拟机vmkrj, 在其局部等待队列上调度任务τiu。当前虚拟机实例vmkrj无法在规定时限内完成任务τiu时, 将移动τiu到单位时间成本更高类型的虚拟机实例中执行。即使没有工作负载, EDA-NMS仍维持一个虚拟机实例运行。当vmkrj运行了完整的记账小时后, 由工作负载决定是否关闭vmkrj。如果RTQ中两个任务有相同的静态松弛度值, 再按其关键度值排序, 具有较高关键度的任务优先调度。在NRTQ中, 非实时任务按到达时间排序, 先到达的任务先执行。只有当RTQ队列为空时, 全局调度器才能调度NRTQ队列中的任务执行。

文献[2]只允许一个任务在虚拟机实例中排队等待执行。当任务数目庞大时, 导致大量任务滞留在全局等待队列中成为性能瓶颈, 引起大量任务错过其时限。此外, 由于排序操作时间依赖于RTQ队列长度, 因此增加了调度算法的时间复杂度。本文利用局部等待队列构建的调度体系结构, 避免了上述对调度算法所造成的大量任务错过其时限和时间复杂度增加的问题。EDA-NMS算法详细伪代码如下所示。

算法1  EDA-NMS算法。

RTQ←NULL;

NRTQ←NULL;

FOR EACH τiu DO

  IF diu! = NULL THEN

   RTQτiu;

  ELSE

   NRTQτiu;

  END IF

  WHILE RTQ! = NULL DO

   RTQ队列中的任务按松弛度升序排序;

   IF两个以上的任务具有相同ξiu THEN

    将相同ξiu的任务按关键度kiu降序排序;

   END IF

   全局调度器分配任务τiu到特定用户lpiu;

   移动τiu到性价比最高的vmkrj局部等待队列队尾;

   执行LRTS算法(算法2);

  END WHILE

  WHILE RTQ= =NULL && NRTQ! = NULL DO

   τiu← NRTQ队头任务;

   全局调度器分配任务τiu到特定用户lpiu;

   移动τiu到性价比最高的vmkrj局部等待队列队尾;

   FOR EACH vmkrj局部等待队列任务τiu DO

    执行任务τiu;

   END FOR

  END WHILE

END FOR

算法2  LRTS算法。

τiuvmkrj局部等待队列队头节点;

计算开始时间$ \widetilde {st}_{ikr}^j $, 执行时间$ \widetilde {et}_{ikr}^j $和完成时间$ \widetilde {ft}_{ikr}^j $;

WHILE $\widetilde {ft}_{ikr}^j > d_i^u$ DO

  查找下个性价比次高的vmkrj;

END WHILE

IF能找到满足$ \widetilde {ft}_{ikr'}^j \le d_i^u $的虚拟机vmkrj THEN

 WHILE τiu! = NULL DO

   执行任务τiu;

   τiuvmkrj局部等待队列队头节点;

  END WHILE

ELSE

  拒绝τiu;

END IF

4 调度性能评价 4.1 环境设置

本文利用CloudSim仿真器执行扩展实验评价EDA-NMS算法的有效性[25]。通过以下性能度量指标和详细参数设置, 将EDA-NMS与主动及响应式调度(Proactive and Reactive Scheduling, PRS)算法[2]进行定量比较, 来证明EDA-NMS获得的性能提升。

1) 时限错过率:完成时间晚于时限的任务数和总任务数的比率。

2) 响应性:反应时间间隔, 例如, 实时任务完成时间与时限的延迟间隔。

3) 任务平均执行时间:

$ \overline {ET} = \sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {\sum\limits_{k = 1}^{\left| {PMj} \right|} {\sum\limits_{r = 1}^{\left| {VMj} \right|} {\left( {\widetilde {ft}_{ikr}^j-\widetilde {st}_{ikr}^j} \right)} } } } /{N_t} $

其中Nt是总任务数。

4) 通过间隔数计算任务时限:

$ d_i^u = at_i^u + \frac{{{\rm{U}}\left[ {{{(l_i^u)}^ - },{{(l_i^u)}^{\rm{ + }}}} \right]}}{{cap_{vm_{kr}^j}^ + }} + {\rm{U}}[0,500]{\rm{s}} $

其中:U[0, 500]s定义为均匀分布在0 s~500 s的变量, 由此变量控制任务时限的松紧度。

5) 任务长度为均匀分布在5000到100000 MI之间的随机数, $ \widetilde l_i^u = [5000,100000]{\rm{MIs}}$

6) 任务到达服从到达速率为λ的泊松分布(Poisson(λ)), λ=4。

4.2 可变工作负载类型下的性能分析

本组实验测试针对不同类型(计算密集型与混合类型)工作负载算法的调度性能。对于计算密集型负载, 主要性能瓶颈是CPU计算能力。因此, 忽略其他资源(例如, 内存、磁盘和网络I/O)对调度策略的影响。针对混合类型工作负载, 仿真三种类型工作负载(计算密集型、I/O密集型和混合型)。同时按亚马逊AWS EC2标准仿真三种虚拟机实例类型(通用型、高端CPU型和高端内存型)。不同类型工作负载在不同类型虚拟机实例上的单位执行时间与运行成本如表 1所示。

表 1 混合类型工作负载单位执行成本与时间 Table 1 Unit execution time and cost of mix-type tasks

分别产生3组不同任务数计算密集型负载与混合类型负载追踪算法性能。实验产生的结果:实时任务数nrt、拒绝的任务数nrj、拒绝任务的低中高三种关键度的任务数分别为nK1nK2nK3, 如表 2所示。

表 2 计算密集型负载/混合类型负载部分运行结果 Table 2 Results of the compute-intensive/mix-type tasks

不同关键度任务对系统稳定性的影响不同, 通过调整实时任务时限的松紧度, 比较当某些实时任务错过其时限时系统的稳定性。从表 2结果中可以发现EDA-NMS算法拒绝的任务的关键度低于PRS算法, 即EDA-NMS算法具有更高的系统稳定性。

同时, 表 2结果表明EDA-NMS保持较低的时限错过率。为了进一步研究任务的执行时间, 通过累积分布函数(Cumulative Distribution Function, CDF)表示任务响应的快慢程度(即:任务时限与任务实际完成时间之间的差值),如图 4所示。

图 4 任务响应性 Figure 4 Tasks response time lag

图 4所示的实验结果可看出:在计算密集型和混合型两种工作负载情况下,EDA-NMS算法在各种不同任务数情况下,任务反应时间间隔均大于PRS算法,意味着EDA-NMS算法任务的实际完成时间与时限之间的差值更大,即具有更短的任务完成时间,响应更快,效率更高。

4.3 计算成本比较

设置任务数从1000变化到10000, 利用表 1中给出的成本单价, 比较EDA-NMS和PRS两种算法针对实时任务的平均计算成本(例如, 支付成本)。图 5中的实验结果表明, 在计算密集型和混合类型工作负载情况下, EDA-NMS算法具有更低的平均计算成本。

图 5 实时任务的平均计算成本 Figure 5 Average cost per real-time task comparison

为了进一步评价算法性能, 假设能提前获知工作负载类型并将其分配到最适合的虚拟机实例上执行(例如, 针对计算密集型负载将其分配到高端CPU型虚拟机实例执行)。在此假设前提下, 引入一种虚拟机实例的最优组合作为比较标准进行性能评价。由于不可能提前知道工作负载的类型, 因此最优组合在现实生活中不可能实现, 仅作为评价标准。各种组合启动的虚拟机实例类型如表 3所示, 每种组合实验都仿真运行10000个未知工作负载类型的任务。

表 3 不同组合的总成本比较 Table 3 Comparison of mix workload cost

运行后的结果如表 3所示, 组合1、组合2和组合3这三种方案分别比最优组合方案运行成本高出58%、23%和17%。EDA-NMS算法采用的组合3这种虚拟机组合方案最接近最优组合方案的成本, 因此用户的支付成本比其他两种组合方案更低。虽然最优组合方案可以获得最低的成本, 但其需启动的虚拟机实例台数更多, 其静态能耗是其他三种组合方案的1.5倍。综合比较, EDA-NMS算法采用的组合3方案是成本和能耗有效的解决方案。

5 结语

云数据中心中现存的调度方法试图通过虚拟机动态迁移技术合并虚拟机, 最小化物理机数量, 达到减少静态能源消耗的目的; 然而却不可避免高额的迁移成本。本文提出的启发式任务调度算法——EDA-NMS, 通过利用某些任务具有相对松散时限的特性, 主动推迟这些任务的执行而不唤醒新的物理机, 可达到进一步减少静态能源消耗的目的。算法根据用户指定的时限、估计的完成时间和物理主机的资源利用率, 渐进地为任务提供云服务。扩展实验结果表明, 本文提出的启发式任务调度策略不仅减少了系统能源消耗, 也减少了实时任务的完成时间,在无需引入虚拟机动态迁移开支的情况下, 保证了任务时限的满足。

参考文献(References)
[1] POP F, DOBRE C, CRISTEA V, et al. Deadline scheduling for aperiodic tasks in inter-cloud environments: a new approach to resource management[J]. Journal of Supercomputing, 2015, 71(5): 1754-1765. DOI:10.1007/s11227-014-1285-8
[2] CHEN H, ZHU X, GUO H, et al. Towards energy-efficient scheduling for real-time tasks under uncertain cloud computing environment[J]. Journal of Systems & Software, 2015, 99(2): 20-35.
[3] BOSSCHE R V D, VANMECHELEN K, BROECKHOVE J. Cost-optimal scheduling in hybrid IaaS clouds for deadline constrained workloads[C]//Proceedings of the 2010 IEEE 3rd International Conference on Cloud Computing. Washington, DC: IEEE Computer Society, 2010: 228-235. http://ieeexplore.ieee.org/document/5557990/
[4] LONG T, VARGHESE B, BARKER A. Task scheduling on the cloud with hard constraints[C]//Proceedings of the IEEE 11th World Congress on Services. Piscataway, NJ: IEEE, 2015: 95-102. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=7196509
[5] MALL R. Real-time Systems: Theory and Practice[M]. Upper Saddle River, NJ: Prentice Hall Press, 2009.
[6] XIE J, YIN S, RUAN X, et al. Improving MapReduce performance through data placement in heterogeneous Hadoop clusters[C]//Proceedings of the 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum. Piscataway, NJ: IEEE, 2011: 1-9.
[7] ROSS C, ORR E S, SISIC M, et al. Personality and motivations associated with Facebook use[J]. Computers in Human Behavior, 2009, 5(2): 578-586.
[8] COOPER B F, RAMAKRISHNAN R, SRIVASTAVA U, et al. PNUTS: Yahoo!'s hosted data serving platform[J]. Proceedings of the VLDB Endowment, 2008, 1(2): 1277-1288. DOI:10.14778/1454159
[9] ZHU X, YANG L T, CHEN H, et al. Real-time tasks oriented energy-aware scheduling in virtualized clouds[J]. IEEE Transactions on Cloud Computing, 2014, 2(2): 168-180. DOI:10.1109/TCC.2014.2310452
[10] QIU M, SHA H M. Cost minimization while satisfying hard/soft timing constraints for heterogeneous embedded systems[J]. ACM Transactions on Design Automation of Electronic Systems, 2009, 14(2): 1-30.
[11] TANG Z, QI L, CHENG Z, et al. An energy-efficient task scheduling algorithm in DVFS-enabled cloud environment[J]. Journal of Grid Computing, 2016, 14(1): 55-74. DOI:10.1007/s10723-015-9334-y
[12] CALHEIROS R N, BUYYA R. Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS[C]//CLOUDCOM 2014: Proceedings of the 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. Washington, DC: IEEE Computer Society, 2014: 342-349. http://ieeexplore.ieee.org/document/7037687/
[13] HE C, ZHU X, GUO H, et al. Rolling-horizon scheduling for energy constrained distributed real-time embedded systems[J]. Journal of Systems and Software, 2012, 85(4): 780-794. DOI:10.1016/j.jss.2011.10.008
[14] HOSSEINIMOTLAGH S, KHUNJUSH F, SAMADZADEH R. SEATS: smart energy-aware task scheduling in real-time cloud computing[J]. Journal of Supercomputing, 2015, 71(1): 45-66. DOI:10.1007/s11227-014-1276-9
[15] WANG W J, CHANG Y S, LO W T, et al. Adaptive scheduling for parallel tasks with QoS satisfaction for hybrid cloud environments[J]. Journal of Supercomputing, 2013, 66(2): 783-811. DOI:10.1007/s11227-013-0890-2
[16] HOSSEINIMOTLAGH S, KHUNJUSH F, HOSSEINIMOTLAGH S. Migration-less energy-aware task scheduling policies in cloud environments[C]//Proceedings of the 2014 28th International Conference on Advanced Information Networking and Applications Workshops. Washington, DC: IEEE Computer Society, 2014: 391-397. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6844669
[17] GAO Y, WANG Y, GUPTA S K, et al. An energy and deadline aware resource provisioning, scheduling and optimization framework for cloud systems[C]//Proceedings of the 2013 International Conference on Hardware/Software Codesign and System Synthesis. Piscataway, NJ: IEEE, 2013: 1-10. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=6659018
[18] BERRAL J L, GAVALDA R, TORRES J. Adaptive scheduling on power-aware managed data-centers using machine learning[C]//Proceedings of the 2011 12th IEEE/ACM International Conference on Grid Computing. Washington, DC: IEEE Computer Society, 2011: 66-73. http://ieeexplore.ieee.org/document/6076500/
[19] SENGUPTA A, PAL T K. Fuzzy Preference Ordering of Interval Numbers in Decision Problems[M]. Berlin: Springer, 2009.
[20] BARUAH S, LI H, STOUGIE L. Towards the design of certifiable mixed-criticality systems[C]//Proceedings of the 2010 16th IEEE Real-Time and Embedded Technology and Applications Symposium. Washington, DC: IEEE Computer Society, 2010: 13-22. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=5465960
[21] DU G, HE H, MENG Q. Energy-efficient scheduling for tasks with deadline in virtualized environments[J]. Mathematical Problems in Engineering, 2014(2014).
[22] MAO M, LI J, HUMPHREY M. Cloud auto-scaling with deadline and budget constraints[C]//Proceedings of the 2010 11th IEEE/ACM International Conference on Grid Computing. Piscataway, NJ: IEEE, 2010: 41-48. http://ieeexplore.ieee.org/document/5697966/
[23] LEI H, ZHANG T, LIU Y, et al. SGEESS: smart green energy-efficient scheduling strategy with dynamic electricity price for data center[J]. Journal of Systems & Software, 2015, 108: 23-38.
[24] VENI T, MARY S B S. A survey on dynamic energy management at virtualization level in cloud data centers[EB/OL]. [2017-01-10]. http://airccj.org/CSCP/vol3/csit3511.pdf.
[25] CALHEIROS R N, RANJAN R, BELOGLAZOV A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J]. Software Practice & Experience, 2011, 41(1): 23-50.
[26] BELOGLAZOV A, BUYYA R. Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers[J]. Concurrency & Computation Practice & Experience, 2012, 24(13): 1397-1420.