本发明专利技术提供一种用于分布式存储系统存储后端的动态调控资源的方法,其中多个LC与BE租户共享存储后端,每个LC租户有一个请求队列和用于该请求队列的CPU核数N
A method and system for dynamically adjusting and controlling resources based on sensing storage back end delay slo
【技术实现步骤摘要】
一种感知存储后端尾延迟SLO的动态调控资源方法及系统
[0001]本专利技术涉及分布式存储系统后端存储领域,尤其是在多租户共享存储后端场景下保证各延迟型租户的尾延迟需求
技术介绍
[0002]为了提高分布式存储系统存储后端的资源利用率,不同类型的租户通常会共享分布式存储系统存储后端。这些租户一般可划分为两类:一类是对延迟有需求:明确的服务等级目标SLO(Service Level Objective)需求,即:99th/99.9th尾延迟需求,比如,99.9th尾延迟不超过5ms的延迟敏感租户(latency
‑
critical,LC),该类租户的请求粒度较小(比如,4KB);另一类是可后台运行对性能无明确需求的租户(best
‑
effort,BE),该类租户的请求粒度较大(比如,64KB或更大)。当LC租户与BE租户共享分布式存储系统存储后端时,由于存在明显的资源(比如:线程、CPU核)竞争,导致LC租户的尾延迟需求不能被满足,且BE租户的带宽较低。
[0003]在多LC租户与多BE租户共享分布式存储系统存储后端场景下,其目标是保证LC租户的目标SLO同时最大化BE租户的带宽,以提高存储后端的资源利用率。目前,已有大量工作围绕上述目标进行展开。将现有技术进行划分为四类。
[0004]第一类是采取共享的线程模型,考虑LC租户的目标SLO需求,并通过请求调度(比如,优先级调度)的方式来保证LC租户的目标SLO需求,该类方法或是采取基于历史尾延迟信息反馈调整LC租户与BE租户之间的线程资源共享比例,或是采取离线分析负载特征的方式确定LC租户的最高发送速率和优先级,或是对存储设备不同的读写访问进行离线分析并结合基于流量控制的优先级调度方式,以保证LC租户的目标SLO需求。
[0005]第二类是在不同的租户之间动态划分CPU资源,同时考虑LC租户的目标SLO需求对CPU资源进行动态划分。该类方法通过检测历史尾延迟信息,并与LC租户的目标SLO需求进行比较,采取基于固定的时间间隔采取尝试性的增量式的核分配策略。
[0006]第三类以最小化LC租户的尾延迟为目标,动态划分CPU资源。该类方法并不考虑LC租户的目标SLO需求,仅通过一些信息(比如,核资源的使用率,请求排队长度,以及实时负载)以固定的时间间隔动态分配核资源。
[0007]第四类方法首先采取请求窗口对LC租户的实时负载进行量化,然后同时考虑LC租户的目标SLO需求和实时负载量估算其所需的CPU核数,并基于请求窗口为LC租户动态调控CPU核资源,该类方法参见申请号为202010139287.1的中国专利申请。
[0008]上述四类现有技术在满足“多租户共享分布式存储系统存储后端场景下,保证LC租户的目标SLO需求并最大化BE租户带宽”这一目标需求时存在明显的缺点与不足,具体如下:
[0009]针对第一类工作,由于其采取共享的线程模型,尽管其根据LC租户的目标SLO需求动态调度LC租户与BE租户的请求,然而,线程需要CPU资源才能被调度处理请求,由于线程与CPU核之间无明确的关系,导致线程时时刻刻竞争CPU核资源。CPU核资源的竞争会对延
迟,尤其是尾延迟产生严重影响。因此,LC租户的目标SLO需求可能不被满足。若要消除CPU核竞争对尾延迟的影响,则需要为LC租户分配更多的资源,这将会导致资源利用率低。除此之外,基于运行过程中的历史信息或租户请求历史访问记录trace的离线分析,进行调控的方法存在明显的局限性,因为(1)历史信息仅反映历史一段时间内的性能情况而与未来性能无明确的相关性,且当LC租户的请求出现突发(burst)请求时,这种基于反馈信息进行调控的方式不能够及时发现并有效的应对请求突发,这种基于历史信息进行反馈调控方式很难满足未来的目标需求;(2)若租户访问模式发生变化,与其离线trace不同,则基于trace的调控必然不能保证访问模式改变的租户的目标需求。这些因素均使得LC租户的目标SLO需求很难被满足。
[0010]针对第二类工作,虽然其在LC租户与BE租户之间动态划分CPU核资源,避免了CPU核的竞争,但其仍旧是基于历史尾延迟与目标SLO之间的差距以及实时负载量,采取增量式的核分配方式来逐渐收敛到一个能满足目标SLO的CPU核数。首先,这种基于历史信息对核进行调控的方式不准确;其次,采取增量式的分配核方式需要较长的时间(秒级)才能收敛到一个合适的核数,这就不能满足毫秒级目标SLO的需求,同时在此收敛过程中,LC租户的延迟(尤其是尾延迟)因为CPU核资源不足而持续受到影响;最后,该类工作采取固定时间间隔的调控方式,这将使得LC租户的目标SLO很难得到保证。
[0011]针对第三类工作,其是以最小化LC租户的尾延迟为目标,考虑LC租户的实时负载量,并以固定的时间间隔对CPU核资源进行动态调整。该类工作的CPU调控方式与目标SLO无关,这可能存在两个问题。一是获得不同的LC租户的最小尾延迟需要的调控间隔是不同的,与LC租户的负载特征相关,当存在多个LC租户时,很难确定一个合理的调控间隔。二是这种以最小化LC租户的尾延迟为目标的核分配方法将会导致较低的资源利用率,当LC租户的目标SLO需求较宽松时,因为该类方法不感知目标SLO需求,仍旧是持续占用较多的CPU核资源以最小化LC租户的尾延迟,这就使得BE租户的带宽很低。
[0012]针对第二类工作和第三类工作,其均需要一个额外的核专门负责CPU核资源的调控,这显然造成了资源的浪费。另外,虽然其均考虑实时负载量对CPU核资源进行调控,但均未考虑底层存储设备的IO波动对CPU核资源分配的影响。在分布式存储系统的存储后端,请求不可避免的会访问底层存储设备,同时底层存储设备的服务时间存在明显的波动,尤其当底层存储设备为SSD时。因此,在对CPU核资源进行动态分配时,必须将底层设备服务时间波动带来的影响一并考虑,才能保证LC租户的目标SLO得到保证,同时最大化BE租户的带宽。
[0013]针对第四类工作,其虽然同时考虑目标SLO需求与实时负载量估算LC租户所需要的CPU核数并基于请求窗口动态调控CPU资源,但是这种估算方法缺少理论依据,且其对不同目标SLO需求的租户均采取相同的核分配策略,并不区分不同目标SLO需求的LC租户,这将导致较低的资源利用率。同时在请求窗口内再次调控CPU核资源时,需要监控请求的入队速率又需要监控请求的出队速以判定是否发生负载burst与底层存储设备服务时间波动,计算过程复杂且不够准确,可能会出现LC租户的目标SLO不能被满足或者BE租户带宽低的情况。
技术实现思路
[0014]本专利技术针对上述问题,根据本专利技术的第一方面,提出一种用于分布式存储系统存储后端的动态调控资源的方法,其中多个LC租户共享存储后端,每个LC租户有一个请求队列和用于该请求队列的CPU核数N
i
,每个请求队列中的访问请求以窗口为单位进行划分,N
i
为窗口i分配的CPU核数,所述本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种用于分布式存储系统存储后端的动态调控资源的方法,其中多个LC租户共享存储后端,每个LC租户有一个请求队列和用于该请求队列的CPU核数N
i
,每个请求队列中的访问请求以窗口为单位进行划分,N
i
为窗口i分配的CPU核数,所述方法包括步骤100:将每个LC租户的请求队列的所有当前请求作为临时窗口;步骤200:获得每个临时窗口的请求数QL
t
,以及该临时窗口第一个请求的排队时间TW
t
;步骤300:基于QL
t
和TW
t
确定当前请求所需的CPU核数N
t
;步骤400:根据所需的CPU核数N
t
与所述当前窗口的CPU核数N
i
,调整该LC租户的CPU核数。2.根据权利要求1所述的方法,步骤300包括:使用以下公式计算临时窗口所需的CPU核数N
t
:其中T
avg_io
为请求的平均服务时间,为临时窗口内请求的平均出队速率,使用以下公式计算:其中,QL
t
表示临时窗口中的请求数,TW
t
表示临时窗口中的第一个请求的排队时间,T
slo
为LC租户的尾延迟的目标SLO需求,Tail
io
为服务时间尾延迟。3.根据权利要求1所述的方法,其中所述分布式存储系统还包括BE租户,所述步骤400包括:若N
t
>N
i
,则从BE租户所占用的CPU核资源中抢占N
t
‑
N
i
个CPU核资源,并为所述LC租户增加N
t
‑
N
i
个CPU核资源。4.根据权利要求1所述的方法,采用以下策略之一执行动态调控资源:保守策略,其仅在窗口开始时检测并重新分配CPU核资源;激进策略,其在窗口内的请求每出队一个就执行动态调控资源;以及感知SLO的策略,其针对不同的SLO需求,在每出队一个或多个请求时使用临时窗口进行检测并重新分配CPU核资源。5.根据权利要求4所述的方法,其中,在所述感知SLO的策略中,在每出队budget个请求时使用临时窗口进行检测并重新分配CPU核资源,其中其中,Tslo为LC租户的尾延迟的目标SLO需求,Tail
io
为服务时间尾延迟,T
avg_io
...
【专利技术属性】
技术研发人员:马留英,刘振青,熊劲,蒋德钧,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。