一种应用感知的多租户Coflow调度方法和系统

文档序号:30507317发布日期:2022-06-25 00:44阅读:179来源:国知局
一种应用感知的多租户Coflow调度方法和系统
一种应用感知的多租户coflow调度方法和系统
技术领域
1.本发明属于大数据通信抗技术领域,具体涉及一种应用感知的多租户coflow调度方法和系统。


背景技术:

2.随着云计算、大数据、物联网等信息技术的高速发展,海量数据的高效计算和快速存储得到了广泛应用。数据中心作为信息产业的基础设施,大量租户、应用接入到数据中心内部,其内部流量激增,给数据中心流量控制带来极大挑战。诸如本地应用迁移上云、视频在线播放等在线服务与应用,均包含复杂的计算过程或存储过程,分布式并行计算框架可以提供高效可靠的服务。针对计算业务的低延迟和存储业务的高吞吐量之间的冲突,即计算任务多为短流量传输,存储任务多为大流量传输,传统的流量调度多用于路由层的优化,对于数据中心内部低延迟、高吞吐量的流量调度优化不够有效。在这种情况下,coflow模型可以弥补分布式并行计算框架的不足。
3.coflow被称为具有语义相关的一组通信数据流。2012年的acm hotnet会议中首次提出coflow调度的概念,此后普遍认为coflow调度是解决分布式并行计算任务的有效方案。以mapreduce并行计算框架为例,map映射阶段需要对作业的任务进行划分和分发(shuffle),会产生中间通信数据流,reduce归并阶段需要读取map阶段处理完成后的中间结果,也会产生中间通信数据流。为了增强数据中心的性能,提高任务的完成时间,需要对coflow的完成时间进行优化(cct,coflow completion time)。
4.众多学者对coflow优化进行了大量研究,诸如:varys、aalo、drf等,其均在一定程度上缩短了平均cct。然而现有coflow优化多关注于性能的提升,即缩短平均cct,对于多租户数据中心内的公平问题,关注较少,导致租户体验较差。如何平衡租户带宽分配与提高租户性能,成为coflow流量调度的挑战。


技术实现要素:

5.本发明所要解决的技术问题是针对上述现有技术的不足,提供一种应用感知的多租户coflow调度方法和系统,结合分布式并行计算框架中coflow特点,通过数学建模加入应用感知机制,保证租户带宽隔离;通过对偶优化,增大租户的实际带宽,提高网络链路利用率。
6.为实现上述技术目的,本发明采取的技术方案为:
7.一种应用感知的多租户coflow调度方法,包括:
8.s1,分布式并行计算系统根据租户需求,执行计算过程,并采集计算过程中的coflow流量信息;
9.s2,分析s1采集到的coflow流量信息,根据coflow流量信息构建nhpp排队模型,模拟coflow流量信息,结合s1实际采集的coflow流量信息与nhpp排队模型的信息,建立租户到达模型;
10.s3,根据租户到达模型,模拟租户的动态需求,引入租户长期隔离进度p
1*
,采用nhdrf算法对p
1*
进行求解,使coflow达到租户长期隔离进度p
1*
,保障租户最低带宽,实现租户隔离与应用感知;
11.s4,在保障租户最低带宽后,针对网络带宽利用率低的问题,对coflow调度问题进行建模,通过拉格朗日对偶优化,求解性能最优进度p
2*
,以实现最小化coflow完成时间和最大化实际分配带宽;
12.s5,基于步骤s3和s4得到租户进度的取值范围p∈(p
1*
,p
2*
),实现应用感知的多租户coflow调度。
13.为优化上述技术方案,采取的具体措施还包括:
14.上述的步骤s2中,分析s1采集到的mapreduce过程中多种计算过程的coflow流量信息,得出其计算过程具有重复规律的特征,根据得出的特征构建nhpp排队模型。
15.上述mapreduce过程中多种计算过程包括:sort、word count,hive join,hive aggregation过程,其流量信息呈现规律重复的特点,包括以下三类:单峰类、固定宽度峰值重复类、峰值宽度变化类,具体的:
16.单峰类:典型代表为hadoop中sort,使用固定0字节值对随机生成的记录进行排序;
17.固定宽度峰值重复类:典型代表为hadoop中word count,统计输入数据中出现的单词数;
18.峰值宽度变化类:hive是构建在hadoop之上的数据仓库系统,执行两个查询语句联合查询时,hive join在开始时表现出短暂的网络活动爆发,具有不同持续时间和不同强度的流量序列。
19.上述的步骤s2中,建立租户到达模型过程如下:
20.步骤s21,基于nhpp排队模型,构造服务速率到达函数;
21.步骤s22,采用em算法优化求解服务速率到达函数,获得期望函数;
22.步骤s23,根据获得的期望函数,得到租户需求的预测函数结合采集到的实际流量dk,构建租户到达模型,即为租户需求流量dk:
[0023][0024]
其中,k表示第k位租户,λ
l
为租户到达速率,λc(t)为服务到达速率,ε∈(0,1)为动态因子,调节真实值dk与预测值的权重。
[0025]
上述的步骤s3具体如下:
[0026]
1)根据租户到达模型,模拟租户的动态需求,nhdrf统计每个coflow端口数量以及其输入端口需求流量、输出端口需求流量;
[0027]
2)寻找每个coflow流量的最小主导资源,利用coflow子流之间的相关性,为最小主导资源分配相应的带宽资源;
[0028]
3)通过平等增加所有coflow进度,让所有的coflow以公平分配的方式分配带宽,使其达到租户长期隔离进度p
1*

[0029]
上述的步骤3)中,将coflow ck在链路i上的子流个数,定义为在所有2m端口中
的子流个数集合为其中最大的子流个数定义为流数瓶颈则将子流数规范化得到向量其中
[0030]
通过平等增加所有coflow进度,让所有的coflow以公平分配的方式分配带宽,使其达到如下租户长期隔离进度p
1*

[0031][0032]
上述的步骤s4包括以下步骤:
[0033]
从租户分配的实际分配带宽和coflow的完成时间两个角度进行lagrange建模,优化coflow的调度性能,将t时刻租户内coflow调度问题进行建模如下:
[0034]
maximize:
[0035]
s.t:
[0036]
其中,n表示t时刻存在的coflow流数量,bw
ij
表示输入端口i和输出端口j之间形成的链路带宽,表示t时刻分配的实际带宽,表示t时刻的coflow完成时间,pr
ij
∈{0,1}表示coflow是否通过输入端口i和输出端口j传输;
[0037]
将coflow调度问题转换为凸问题:
[0038]
min imize:
[0039]
s.t:
[0040]
通过在凸问题中设计问题的约束条件,将原问题优化为lagrange对偶问题:
[0041][0042]
f0表示凸问题的优化目标,fi为凸问题中不等式约束,hj为凸问题中的等式约束,φi为不等式约束乘子,为等式约束乘子;
[0043]
最小化coflow调度问题的lagrange函数,即可得lagrange对偶函数:
[0044][0045]
通过梯度下降方法求解令a
l
和分别是coflow调度问题和lagrange对偶问题的某对最优解,则:
[0046][0047]
其中t表示迭代索引,αk(t)表示迭代搜索的步长;
[0048]
表示i链路在第t轮迭代中的最优解;
[0049]
通过梯度下降求解然后收敛到最优a
l

[0050]
收敛到最优a
l
结合租户需求流量dk,得到性能最优进度p
2*

[0051][0052]
一种应用感知的多租户coflow调度系统,用于上述一种应用感知的多租户coflow调度方法,包括全局控制器与局部控制器;
[0053]
所述全局控制器,包括主节点与守护进程,用于统筹coflow的全局控制信息;
[0054]
所述主节点发挥着控制器的作用;
[0055]
所述守护进程负责协调局部调度器,从全局进行优化控制;
[0056]
所述局部控制器负责本地coflow调度,具有两种队列模型:公平队列模型与多级队列反馈模型,且包括工作节点与监控模块;
[0057]
所述公平队列模型,用于保证租户隔离;
[0058]
所述多级反馈队列模型负责性能优化;
[0059]
所述工作节点负责和主节点进行交互,优化本地调度;
[0060]
所述监控模块用于采集coflow流量信息,监控链路状态,实时分析租户需求变化。
[0061]
本发明具有以下有益效果:
[0062]
本发明首先对租户需求进行分析,引入进度来衡量租户完成任务传输的指标,根据nhpp排队模型建立租户到达模型,调用nhdrf算法求解长期隔离进度,保障租户隔离,实现应用感知;然后以最大化链路利用率为目标,采用lagrange对偶优化,增大实际带宽分配,得到性能最优进度;以此在保障租户带宽公平分配的条件下,最大化网络链路利用率,有效提高了coflow调度性能。
附图说明
[0063]
图1为本发明实施例提供的应用感知的多租户coflow调度结构图。
[0064]
图2为本发明应用感知的多租户coflow调度方法流程图。
[0065]
图3为本发明实施例提供的应用感知的多租户coflow调度方法流程图。
[0066]
图4为本发明实施例提供的mapreduce过程流量变化图。
[0067]
图5为本发明实施例提供的应用感知的多租户coflow调度方法与现有方法完成时间对比图。
[0068]
图6为本发明实施例提供的应用感知的多租户coflow调度方法与现有方法吞吐量对比图。
具体实施方式
[0069]
以下结合附图对本发明的实施例作进一步详细描述。
[0070]
如图1所示,本发明公开了一种应用感知的多租户coflow调度系统,包括全局控制器与局部控制器;
[0071]
所述全局控制器,包括主节点与守护进程,用于统筹coflow的全局控制信息;
[0072]
所述主节点是调度系统的大脑,其发挥着控制器的作用。
[0073]
所述守护进程负责协调局部调度器,从全局进行优化控制;
[0074]
所述局部控制器负责本地coflow调度,其具有两种队列模型:公平队列模型与多级队列反馈模型,且包括工作节点与监控模块;
[0075]
所述公平队列模型,用于保证租户隔离;
[0076]
所述多级反馈队列模型负责性能优化;
[0077]
所述工作节点负责和主节点进行交互,优化本地调度;
[0078]
所述监控模块用于采集coflow信息,监控链路状态,实时分析租户需求变化。
[0079]
基于上述系统实现本发明如图2所示的应用感知的多租户coflow调度方法,具体的实施流程图如图3所示,调度过程涉及:
[0080]
s1,信息采集
[0081]
本发明应用感知的多租户coflow调度机制,首先根据租户需求保证性能隔离;然后为了最大化利用网络带宽,会根据链路状况进行性能优化,因此,应用感知的多租户coflow调度机制需要采集租户信息并时刻监控链路状态,进一步的:分布式并行计算系统根据租户需求,执行计算过程,并采集计算过程中的coflow流量信息;
[0082]
s2、s3,租户隔离
[0083]
租户隔离通过实时采集信息,来确保租户的最低带宽要求。
[0084]
然而,云数据中心内租户需求具有高度动态变化的性质,其长期性能隔离需求不易满足。
[0085]
租户隔离模块从进度的分配需求考虑,建立基于应用感知的多租户coflow调度机制,首先采集租户的现有需求,做到瞬时性能保证;
[0086]
针对租户需求高度动态变化的特性,建立nhpp排队模型,调用nhdrf算法,实现对租户需求的动态感知,以此保证租户隔离,具体的:
[0087]
s2,分析s1采集到的coflow流量信息,如mapreduce过程中多种计算过程,其流量信息是重复且规律的,根据coflow流量信息构建nhpp排队模型,模拟coflow流量信息,结合s1实际采集的coflow流量信息与nhpp排队模型的信息,建立租户到达模型;
[0088]
进一步地,步骤s2包括:
[0089]
1)、采集并分析mapreduce过程中的流量特征。
[0090]
mapreduce过程中多种计算过程包括:sort、word count,hive join,hive aggregation等过程,对于sort、word count,hive join,and hive aggregation等功能,不同的作业,有不同的特点,单其均由规律性,通过观察这些流量模式,大部分可分为以下三类:单峰类、固定宽度峰值重复类、峰值宽度变化类,其流量变化如图4左侧图所示:
[0091]
单峰类:典型代表为hadoop中sort,使用10字节键和90字节值对随机生成的记录进行排序,如图4左侧图内(1)所示。
[0092]
固定宽度峰值重复类:典型代表为hadoop中word count,统计输入数据中出现的单词数。这些数据是由于在map任务中而减少map输出,而周期性网络流量是因为map任务成批完成,如图4左侧图内(2)所示。
[0093]
峰值宽度变化类:hive是构建在hadoop之上的数据仓库系统。执行两个查询语句联合查询时,hive join在开始时表现出短暂的网络活动爆发,具有不同持续时间和不同强度的流量序列,如图4左侧图内(3)所示。
[0094]
云数据中心内部通过分布式并行计算框架处理数据,mapreduce是典型代表。具体地,假设coflow ck的需求变量为k表示第k位租户,表示coflow ck在链路i上的带宽需求。同样的,针对需求向量dk,网络调度器会分配器相应的带宽,coflowck实际分配的带宽向量为实际分配的带宽向量为表示coflow ck在链路i上分配的实际带宽。至此,正式引入进度作为coflow ck在链路上的标准化分配指标:
[0095][0096]
从上述表达式可以看出,coflow进度捕获最慢链路上可达到的传输速率,这严重影响cct性能。
[0097]
租户长期隔离进度:在多租户的云数据中心中,来自不同租户和应用程序的coflow会争夺共享网络中的通信带宽。对于给定的任务分配,通过将隔离保障衡量为coflow的最小进度,即求解最大化最小的进度分配优化性能隔离:
[0098][0099]
其中,k表示第k个租户,k表示租户总数。
[0100]
性能最优进度:通过识别瓶颈链路,增大实际带宽分配,提高网络链路利用率,优化coflow的完成时间,即最小化cct,提高coflow调度性能。
[0101]
2)建立租户到达模型过程如下:
[0102]
步骤s21,基于nhpp排队的服务到达模型,首先构建服务速率到达函数;
[0103]
步骤s22,然后采用em算法优化求解,获得期望函数;
[0104]
em算法是一种迭代优化策略,其每次迭代分两步,第一步为期望步,第二步为极大步;
[0105]
步骤s23,最后再根据获得的期望函数,构建租户需求的预测函数。
[0106]
实施如下:
[0107]
(1)构建服务速率到达函数。
[0108]
基于nhpp排队的服务到达模型的灵活性在于每个服务速率到达函数λc(t)可以是任何形式的函数,将每个λc(t)建模为kl权重高斯基{b1,b2,...,b
kl
}:
[0109]
[0110][0111]ackl
为权重,μ
kl
表示均值,σ
kl
为方差。
[0112]
(2)期望最大化。通过估计θ中的参数,这里表示参数模型,对应于过程的速率函数<λ1,λ2,...,λc>与混合概率<p1,p2,...,pc>,实现期望最大化:
[0113][0114]
求解期望:第一次迭代概率
[0115][0116]
最大化:通过求解得到参数θ
τ+1
的新估计:
[0117][0118]
计算出总体混合概率pc:
[0119][0120]
最后,整个过程进行迭代,得到权重的估计值a
ck
,从而得到每个nhpp的速率函数的最终形式。
[0121]
(3)预测。为预测租户时刻的动态需求,得到联合概率密度函数
[0122][0123]
对于预测事件π,使用等待时间的中值当其时得到:
[0124][0125]
通过积分生成事件的预测:
[0126][0127]
至此,得到租户的到达模型:
[0128][0129]
这里λ
l
为租户到达速率,λc(t)为服务到达速率,ε∈(0,1)为动态因子,调节真实值dk与预测值的权重。
[0130]
再次观察图4左侧图中mapreduce过程中吞吐量变化,图中横轴表示时间变化,纵
轴表示吞吐量变化。从图中可以看出,在时间(0,5s)之内,由于工作任务中进行sort操作,mapreduce吞吐量呈现单峰类变化;在时间(10s,35s)之内,进行了hive join等操作,mapreduce吞吐量呈现峰值宽度不规则变化类;在时间(75s,100s)之内,进行word count操作,其数据会周期性shuffle。以上三种类型的流量会重复性出现,因为mapreduce其操作会出现周期性变化,故吞吐量也会呈现周期性。在这里针对其中一种进行研究,如固定宽度峰值重复类,其具有很强的规律性。通过建立nhpp模型,对其峰值数据进行模拟,其结果如图4右侧图所示。本次模拟图4右侧图中时间段为(0,10s)内的吞吐量变化,其流量类型呈现固定宽度峰值,利用nhpp过程建模,对其峰值数据进行模拟。通过调整动态因子ε,优化建模过程,多次实验表明,ε取0.80时,其模拟结果最为准确。进一步的,从图中可以看出,其峰值数据出现在160mbps附近,且nhpp模型波动较小,较好的模拟了mapreduce过程在时间段为(0,10s)内的吞吐量变化。
[0131]
s3,根据租户到达模型,模拟租户的动态需求,引入租户长期隔离进度p
1*
,采用nhdrf算法对p
1*
进行求解,使coflow达到租户长期隔离进度p
1*
,保障租户最低带宽,实现租户隔离与应用感知;
[0132]
采用nhdrf算法求解租户长期隔离进度,具体如下:
[0133]
1)首先,nhdrf会统计每个coflow端口数量以及其输入端口需求流量、输出端口需求流量dk。
[0134]
2)然后,寻找每个coflow流量的最小主导资源,由于coflow执行过程中,其不同的端口之间流量存在一定的比例关系,利用coflow子流之间的相关性,为最小主导资源分配相应的带宽资源。
[0135]
domain share指每个租户资源占相应总资源的比例最大值。
[0136]
3)将coflow ck在链路i上的子流个数,定义为在所有2m端口中的子流个数集合为其中最大的子流个数定义为流数瓶颈则将子流数规范化得到向量其中
[0137]
最后,通过平等增加所有coflow进度,让所有的coflow以公平分配的方式分配带宽,使其达到租户长期隔离进度p
1*

[0138][0139]
s4、性能优化
[0140]
性能优化模块从进度的实际带宽考虑,基于lagrange对偶优化,针对带宽利用率低和完成时间长两个问题,对coflow调度问题进行建模优化,将原问题转化为凸优化问题进行求解,通过梯度下降算法加快求解速度,做到性能优,具体的:
[0141]
s4,在保障租户最低带宽后,针对网络带宽利用率低的问题,对coflow调度问题进行建模,通过拉格朗日对偶(lagrange)优化,求解性能最优进度p
2*
,实现最小化coflow完成时间和最大化实际分配带宽。
[0142]
进一步地,步骤s4包括以下步骤:
[0143]
从租户分配的实际带宽和coflow的完成时间两个角度进行lagrange建模,优化coflow的调度性能,将t时刻租户内coflow的调度问题建模如下:
[0144]
maximize:
[0145]
s.t:
[0146]
其中n表示t时刻存在的coflow流数量,bw
ij
表示输入端口i和输出端口j之间形成的链路带宽,表示t时刻分配的实际带宽,表示t时刻的coflow完成时间,pr
ij
∈{0,1}表示coflow是否通过输入端口i和输出端口j传输。对于最小化cct的np-hard问题,通过将coflow调度问题转换为凸问题,可极大提高求解速率:
[0147]
min imize:
[0148]
s.t:
[0149]
通过在凸问题中设计问题的约束条件,将coflow调度问题优化为lagrange对偶问题:
[0150][0151]
φi被称为不等式约束乘子,被称为等式约束乘子。最小化coflow调度问题的lagrange函数,即可得lagrange对偶函数:
[0152][0153]
然后通过梯度下降方法求解令a
l
和分别是原问题和lagrange对偶问题的某对最优解,其对偶间隙为零,则:
[0154][0155]
其中t表示迭代索引,αk(t)表示迭代搜索的步长。表示i链路在第t轮迭代中的最优解,通过上式求解然后收敛到最优a
l

[0156]
通过梯度下降方法求解然后收敛到最优a
l

[0157]
由于进度是指租户实际分配带宽与需求带宽的比值,通过拉格朗日优化,求得实际分配带宽a
l
,再与租户需求流量dk做比,得到性能最优进度p
2*
,即:
[0158]
通过识别瓶颈链路,增大实际带宽分配,提高网络链路利用率,优化coflow的完成时间,提高coflow调度性能,得到性能最优进度p
2*
。其表达式如下:
[0159][0160]
由上式可知:一方面,通过建立租户排队模型,进一步优化租户需求,即dk;另一方面,通过建立lagrange对偶模型,提高网络链路利用率,增大租户的实际带宽,即a
l
,从两个方面共同优化coflow调度。
[0161]
s5,基于步骤s3和s4得到租户进度的取值范围p∈(p
1*
,p
2*
),实现应用感知的多租户coflow调度。
[0162]
本发明提出了一种应用感知的多租户coflow调度方法,在基于小规模流级别的模拟器和开源网络模拟器,对meta(原facebook)数据集526个coflow随机分配任务,其任务到达时间遵循租户到达模型,并将四种不同类型的coflow流作为工作负载。
[0163]
图5得到了drf、hug、utopia与aamt的coflow完成时间对比图,可以看出,aamt的cct平均比drf、hug分别高出9.2%、86.3%、74.3%。这是因为aamt不仅考虑了租户隔离,还考虑了性能优化;当然aamt性能接近utopia,占到96.8%。其中,针对sn、sw这两类coflow类型,aamt表现出更佳的性能;因为aamt考虑租户需求的弹性变化,针对租户短coflow,aamt会感知同一coflow的其他子流,然后建立nhpp模型,进行优化;对于租户的长coflow,则采取先到先服务的原则,因为对于长coflow,对其发送顺序进行排序,会严重影响传输时间。
[0164]
图6比较了四种机制在不同工作负载下的吞吐量,这也部分解释了图5中aamt更好的cct性能。吞吐量表示通过整个网络传输的所有数据量除以所有coflow的最大完成时间。在较低负荷下(四种算法具有相似的吞吐量,而在更高的负载下,aamt的吞吐量明显高于drf(100%负载时21.3%),略高于utopia(100负载时4.2%),相对于utopia,aamt有一个收敛过程,其租户到达模型,可以很好的适应租户需求动态变化,因此吞吐量损失很小。因此,aamt在保证租户隔离时同时保持了良好的链路利用率。
[0165]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1