一种保证分布式存储系统服务器端读尾延迟的方法及系统技术方案

技术编号:27612551 阅读:33 留言:0更新日期:2021-03-10 10:39
本发明专利技术提出一种保证分布式存储系统服务器端读尾延迟的方法及系统,包括通过应用负载特征建模对应用分为不可延后服务应用与可延后服务应用两类,对两类应用预分配资源。存储节点服务应用时,对不同类型的应用进行匹配,使匹配的应用组合共享服务速率。根据应用负载的变化动态地交换资源,以保证应用尾延迟SLO的应用准入控制方法。的应用准入控制方法。的应用准入控制方法。

【技术实现步骤摘要】
一种保证分布式存储系统服务器端读尾延迟的方法及系统


[0001]本专利技术涉及分布式存储系统
,尤其是保证延迟敏感型应用低尾延迟需求


技术介绍

[0002]分布式存储系统采取典型的客户端-服务器(Client-Server)模型。访问分布式存储系统的请求处理过程为:(1)应用(Application)请求访问分布式存储系统的客户端;(2)客户端将请求通过网络发送给服务器;(3)服务器从网络上接受请求并开始处理,请求到达服务器后会首先进入队列中排队,若有空闲线程,则会从队列中取请求并进行处理;(4)请求在服务器端被处理完成后,其响应将通过网络发送给客户端;(5)客户端接收到请求的响应后将其发送给应用。至此,一个请求就被处理完成,如图1所示。上述步骤(3)中在服务器端对请求的处理过程复杂,同时涉及到请求排队,线程处理,存储访问等。服务器端从网络上接收请求后,将请求放入到相应的队列上,服务器端的请求队列可采取单队列或多队列模式,真正处理请求是存储节点上的IO线程。线程根据不同出队策略从队列上取请求并进行处理,请求处理过程中会访问存储设备获取响应,最终将响应经网络发送给客户端。线程在同一时刻只能处理一个请求,一个请求处理完成后才能处理下一个请求。
[0003]部署在分布式存储系统上的延迟敏感型应用(Latency-sensitive application)需要保证其尾延迟SLO。为避免多个延迟型应用由于资源竞争产生干扰,而对尾延迟造成影响,最简单的方法是在存储系统上单独部署该类应用,使其独占系统资源,或者按照其峰值压力为其预分配系统资源,以保证其尾延迟需求能够被满足。很显然,这导致系统资源不能被充分利用,利用率较低,相关研究表明:数据中心存储系统资源利用率介于10%~45%之间。存储系统通常是大规模部署的,涉及成百上千个服务节点,如此低的资源利用率将消耗巨大的资本和运营成本。为提高存储系统资源利用率,将多种延迟型应用混合部署,势必会竞争存储资源,继而对尾延迟产生影响。
[0004]因此,目前有大量工作围绕“针对多种延迟型应用混合部署在分布式存储系统中时,如何高效地管理存储节点所提供的吞吐量资源并采取合适的应用准入控制,在满足多种应用差异化的高百分位尾延迟SLO需求的前提下,尽可能多地处理应用请求,以提高系统资源利用率”进行展开:
[0005](1)一种反馈式的存储节点线程分配方法Cake。Cake每隔固定的时间间隔(如10s)对线程资源进行调整,根据上一个时间间隔内应用的尾延迟SLO与目标SLO的比值,优先使用按比例共享策略来设定线程服务不同应用的请求,经过调整后,若按比例共享策略仍不能满足目标SLO需求,则会采取预留策略,也即为应用预留单独的线程,其余线程仍为共享线程。
[0006](2)一种反馈式的客户端限流方法PSLO。PSLO每隔固定的时间间隔(如10s)统计应用请求延迟满足尾延迟SLO的概率,如果该概率低于应用要求的尾延迟SLO的概率,则对该应用以及与该应用有着相同的目标存储节点的应用进行限流。通过在客户端降低应用的发
送iodepth来达到限流的效果,待统计的应用请求延迟满足尾延迟SLO的概率高于应用要求的尾延迟SLO的概率之后,再不断降低对应用的限流程度。
[0007](3)一种先验式存储节点优先级调度方法PriorityMeister。PriorityMeister首先基于应用提供的具有代表性的trace分析应用的负载特征,根据存储节点所提供的平均吞吐量,预测每个应用在不同优先级下的请求最大延迟,如果预测的延迟不超过应用的尾延迟SLO,则允许该应用按照设定的优先级接入系统。通过预先不断调整应用的优先级,来寻找允许接入应用数量最多的优先级配置。PriorityMeister分析应用的负载特征基于漏桶(Leaky token bucket),延迟预测方法基于Network Calculus。
[0008](4)一种先验式的存储节点优先级调度方法SNC-Meister。SNC-Meister首先基于应用提供的具有代表性的trace分析应用的负载特征,根据存储节点所提供的平均吞吐量,预测每个应用在预分配的优先级下的请求百分位延迟,如果预测的百分位延迟不超过应用的尾延迟SLO,则允许该应用按照预分配的优先级接入系统。应用的尾延迟SLO的要求越高,则为该应用分配的优先级越高。SNC-Meister分析应用的负载特征基于Markov-Modulated Poisson Process,延迟预测方法基于Stochastic Network Calculus。
[0009](5)一种先验式的存储节点固定服务速率限流方法Silo。Silo首先基于应用提供的具有代表性的trace分析应用的负载特征,根据存储节点所提供的平均吞吐量,预测每个应用在预分配的服务速率下的请求百分位延迟,如果预测的最大延迟不超过应用的尾延迟SLO,则允许该应用按照预分配的服务速率接入系统。Silo分析应用的负载特征基于漏桶(Leaky token bucket),延迟预测方法基于Network Calculus。
[0010]应用的负载大小随着时间是不断变化的。现有的先验式资源管理策略如PriorityMeister、SNC-Meister和Silo均静态地分配资源,不能精准地切合应用不断变化的负载,造成了较高的资源超量配置。而反馈式资源管理策略如Cake和Silo虽然可以周期性地分配资源,但这些方法无法预见到应用突发流量(trace)的产生,由于从收集信息、反馈到最终决策中间的延迟较长,将可能导致应用的延迟SLO被违反,因此只能保证百分位较低(如95th)的延迟SLO。

技术实现思路

[0011]本专利技术的目的是解决上述现有技术中资源分配的可预测性与资源分配的灵活性之间的矛盾而导致保证多应用差异化尾延迟SLO的工作系统资源利用率低的问题,提出了一种基于动态可预测资源管理机制的应用准入控制方法。本专利技术要保证的延迟SLO指的就是百分位延迟。例如99百分位延迟,假设应用共发送了1000个请求,将所有请求的延迟按照从低到高排序,则第990个请求的延迟即为99百分位延迟(1000*99%=990)。
[0012]针对现有技术的不足,本专利技术提出一种保证分布式存储系统服务器端读尾延迟的方法,其中包括:
[0013]步骤1、根据应用的负载特征与延迟需求,将分布式存储系统中每一个应用分类为服务可延后的PT应用或服务不可延后PI应用;
[0014]步骤2、根据预设保证延迟值,计算PT应用借出的最大资源数量;
[0015]步骤3、PI应用所获得的服务速率为其平均发送速率,计算百分位延迟发生时的排队请求数量PQD_avg=PQL_avg*AR_avg。PI应用延迟SLO不被违反,百分位延迟发生时的排
队请求数量最大值PQD_SLO=SLO*AR_avg,AR_avg为应用的请求平均发送速率,PQL_avg为百分位排队延迟,SLO为应用的延迟需求,通过PQD_avg减去PQ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保证分布式存储系统服务器端读尾延迟的方法,其特征在于,包括:步骤1、根据应用的负载特征与延迟需求,将分布式存储系统中每一个应用分类为服务可延后的PT应用或服务不可延后PI应用;步骤2、根据预设保证延迟值,计算PT应用借出的最大资源数量;步骤3、PI应用所获得的服务速率为其平均发送速率,计算百分位延迟发生时的排队请求数量PQD_avg=PQL_avg*AR_avg,PI应用延迟SLO不被违反,百分位延迟发生时的排队请求数量最大值PQD_SLO=SLO*AR_avg,AR_avg为应用的请求平均发送速率,PQL_avg为百分位排队延迟,SLO为应用的延迟需求,通过PQD_avg减去PQD_SLO,得到PI应用借用的资源数量最大值QD_Reduce;步骤4、PI应用借用相同资源所获得的收益大小,为各PI应用借用资源的优先级;步骤5、设最小服务速率为PI应用的平均发送速率AR_avg,最大服务速率为该PI应用的最大发送速率AR_max,设PI应用借用的资源数量为QD_Reduce,通过二分查找,找到使借用资源后的百分位延迟PQL_Borrowed=(PQD_SR_Borrowed-QD_Reduce)/SR_Borrowed,以得到PI应用借用资源后所需的平均服务速率;步骤6、根据PI应用借用资源的优先级和PI应用借用的资源数量最大值和每个PT应用借出的最大资源数量,通过动态规划的方法为当前PI应用分配多个PT应用,每次匹配后,从PT应用集合中剔除已匹配的PT应用,直到每个PI应用均借到资源或者PT应用全部匹配完毕;步骤7、已匹配应用组合的总服务速率为PI应用借用资源后的预分配服务速率与应用组合中PT应用各平均发送速率之和;步骤8、PI应用与其相匹配的PT应用共享该总服务速率,为每个PI应用以及与其相匹配的PT应用分配独立的队列,为应用组合中PI应用和各PT应用分配相应服务速率,并监控PT应用因出借资源造成的额外请求排队数量QD_Add,当QD_Add小于最大资源数量时,PI应用的服务优先级高于PT应用,允许该PI应用借用该PT应用的资源,当QD_Add与最大资源数量相同时,该PT应用的服务优先级高于PI应用,为PT应用预留与PT应用的平均发送速率相同的服务速率,若PI应用的请求发送速率低于PI应用的平均发送速率,则剩余的服务速率用于服务PT应用;步骤9、应用接入分布式存储系统的存储节点时,为其分配一个队列,并根据存储节点当前的虚拟时间戳为队列分配虚拟时间戳TS
i
,为该应用的队列分配一个时间戳增加间隔TI
i
,TI
i
为预分配服务速率的倒数,对分布式存储系统中所有应用的时间戳进行排序,IO线程空闲后查找拥有最小时间戳的队列从中取出请求,并增加该最小时间戳的队列的时间戳TS
i
=TS
i
+TI
i
。2.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,还包括:步骤10、PT应用接入该存储节点时,为PT应用的队列设定可借出资源数量初值为该最大资源数量QD_Add_max;当IO线程空闲后查找拥有最小时间戳的队列,若该队列归属于PT应用,增加该队列的时间戳TSi=TSi+TIi,并读取可借出资源数量;若可借出资源数量大于0且对应的PI队列不为空,将PT应用的可借出资源数量减1,取出PI应用的请求进行服务;若可借出资源数量大于0且对应的PI队列为空,则取出PT队列中的请求服务,PT应用的借出资
源数量不变;若可借出资源数量等于0,则取出PT队列中的请求进行服务,PT应用的可借出资源数量不变。3.如权利要求2所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,还包括:步骤11、当IO线程空闲后查找拥有最小时间戳的队列,若该队列归属于PI应用,修改该队列的时间戳,并读取该队列中请求的数量;若该队列不为空,则从该队列中读取请求服务;若该队列为空,则从所有PT应用中寻找可借出资源数量最小的PT队列,从该PT队列中取出请求服务,并将该PT队列的可借出资源数量加1。4.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,该步骤1包括:每个应用提供一个代表其负载特征的请求轨迹,将该请求轨迹中请求发送总量与请求发送的持续时间的比值作为该应用的请求平均发送速率AR_avg,设该应用获得的请求服务速率与请求的平均发送速率相同为AR_avg,计算百分位排队延迟PQL_avg,该百分位与应用延迟SLO的百分位相同,该请求轨迹提供请求入队的时间间隔,AR_avg提供请求出队的时间间隔,以计算该请求轨迹中所有请求的排队延迟,将延迟从低到高进行排序,计算百分位延迟,比较PQL_avg与该应用的延迟SLO,如果PQL_avg大于等于SLO,则该应用为PI应用,否则该应用为PT应用。5.如权利要求1所述的保证分布式存储系统服务器端读尾延迟的方法,其特征在于,该步骤2包括:PT应用被延后服务的时间Postponement=SLO-PQL_avg,PT应用借出的最大资源数量为PT应用因资源出借而增加的排队请求数量QD_Add_max=Postponement*AR_avg。6.一种保证分布式存储系统服务器端读尾延迟的系...

【专利技术属性】
技术研发人员:冷镇宇蒋德钧熊劲
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1