首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 请求书 / 请求 / 并发请求调度

并发请求调度

阅读:966发布:2020-05-12

专利汇可以提供并发请求调度专利检索,专利查询,专利分析的服务。并且一种用于具有不同优先级 访问 请求 的工作负载的 存储器 的存储访问调度的方法(1400),所述不同的优先级访问请求包括具有实时优先级的访问请求。所述方法包括特征化所述存储器设备(1402),其包括确定并发访问请求的平衡数(N),所述并发访问请求的平衡数与同所述存储器设备相关联的并发访问最大吞吐量相关联。所述方法还包括特征化所述工作负载(1404)。所述方法还包括接收与访问请求存储 位置 值相关联的实时访问请求(1406)。所述方法还包括基于访问请求存储位置值以及从特征化存储器设备以及工作负载来获得的值,处理实时访问请求(1408)。,下面是并发请求调度专利的具体信息内容。

1.一种用于具有不同优先级访问请求的工作负载的存储器设备的存储访问调度的方法(1400),所述工作负载包括具有实时优先级、以及较低实时优先级访问请求的不同的优先级访问请求,所述方法包括:
按照与所述存储器设备相关联的至少一个参数特征化所述存储器设备(1402),包括:
 确定并发访问请求的平衡数,所述并发访问请求的平衡数是特征化存储器设备的参数 ,通过测绘针对存储器设备的吞吐量的总未解决I/O得出,所述并发访问请求与同所述存储器设备相关联的并发访问最大吞吐量相关联;
按照与所述工作负载相关联的至少一个参数特征化所述工作负载(1404);
接收与访问请求存储位置值相关联的具有实时优先级的访问请求(1406);以及基于访问请求存储位置值以及特征化存储器设备以及工作负载获得的参数,使用处理器处理具有实时优先级的访问请求(1408)。
2.根据权利要求1所述的方法,其中特征化所述存储器设备包括基于并发访问请求的平衡数(N)确定最坏情况设备服务等待时间值(1502),其中所述最坏情况设备服务等待时间值是与包括存储器设备中的内部黑盒队列的存储器设备相关联的黑盒布置中的总服务时间相关联的时间值。
3.根据权利要求1所述的方法,其中特征化所述存储器设备包括确定与所述并发访问最大吞吐量相关联的最大最坏情况吞吐量预调时间值(1502),其中所述最大最坏情况吞吐量预调时间值是与处理通过主队列的并发访问请求的平衡数(N)相关联的时间值;并且其中来自特征化所述存储器设备以及工作负载的确定值是基于时间的,所述确定值是与所述存储器设备相关联的至少一个参数和与所述工作负载相关联的至少一个参数。
4.根据权利要求2所述的方法,其中特征化所述工作负载包括下述中的至少一个:
针对具有实时优先级的工作负载中的访问请求确定与总最坏情况服务访问时间相关联的最小初始松弛时间值(1504),其中所述总最坏情况服务访问时间是在具有实时优先级的访问请求在错过其实时服务截止期限之前在存储器设备中必须被服务的之前消逝的最长时间段,所述最小初始松弛时间值是与用于传递具有实时优先级的访问请求的总处理时间相关联的时间值;
确定与具有实时优先级的工作负载中的访问请求相关联的突发性值(1504),其中所述突发性值是与工作负载中的实时请求的突发性相关联的计数或时间段的值;以及基于从特征化所述存储器设备以及所述工作负载获得的值确定最坏情况队列延迟值(1504),其中最坏情况队列延迟值是与处理通过并发请求调度架构中的主队列的请求相关联的时间值。
5.根据权利要求4所述的方法,其中处理所述具有实时优先级的访问请求包括:
将所述具有实时优先级的访问请求分配给仅保持具有实时优先级的访问请求的未决队列(206);
将所述具有实时优先级的访问请求从仅保持具有实时优先级的访问请求的未决队列(206)中取出;以及
将所述具有实时优先级的访问请求分配给主队列(204)。
6.根据权利要求5所述的方法,其中,所述主队列(204)与同所确定的最坏情况队列延迟值相关联的参数相关联。
7.根据权利要求5所述的方法,其中,仅保持具有实时优先级的访问请求的未决队列(206)与同所述确定的突发性值相关联的参数相关联。
8.根据权利要求7所述的方法,其中,所确定的最小初始松弛时间值(218)与在σ时间预算、ζ时间预算与δ时间预算之中分配的最小初始松弛时间值时间预算相关联,并且其中所述σ时间预算与所确定的突发性值(216)相关联、所述ζ时间预算与所确定的最坏情况队列延迟值(214)相关联,以及所述δ时间预算与所确定的最坏情况设备服务等待时间值(212)相关联。
9.根据权利要求5所述的方法,其中,所述主队列(204)被划分成当前队列和下一个队列,
其中当前队列和下一个队列都接收不同优先级访问请求,
其中基于它们相应的访问请求存储位置值来将所述接收的不同优先级访问请求分配给当前队列和下一个队列,以及
其中,所述当前队列与用来调节互换所述当前队列和所述下一个队列的计数相关联,并且当访问请求被分配给所述当前队列时,修改所述计数。
10.根据权利要求6所述的方法,其中,除了从仅保持具有实时优先级的访问请求的所述未决队列(206)中接受请求之外,所述主队列(204)还接受从至少一个较低实时优先级未决队列分配给它的较低实时优先级访问请求。
11.根据权利要求10所述的方法,其中处理所述具有实时优先级的访问请求包括如果较低实时优先级访问请求被分配给主队列(204),
则响应于将所述具有实时优先级的访问请求分配给所述主队列(204)将先前分配的较低实时优先级访问请求从所述主队列(204)中取出。
12.根据权利要求5所述的方法,其中,所述最小初始松弛时间值(218)是动态参数,其响应于与预期未来相关联的信号重新确定,改变到不同优先级访问请求的工作负载。
13.根据权利要求12所述的方法,其中,所述重新确定的最小初始松弛时间值(218)是基于从特征化所述存储器设备获得的至少一个值的并且响应于与预期未来相关联的信号的工作负载改变到不同优先级访问请求的工作负载而确定的。
14.一种用来执行用于具有不同优先级访问请求的工作负载的存储器设备的存储访问调度的装置(102),所述工作负载包括具有实时优先级、以及较低实时优先级访问请求的不同的优先级访问请求,所述装置包括:
处理器(120),其用来操作
设备特征化模(106)以按照与所述存储器设备相关联的至少一个参数特征化所述存储器设备,包括:
确定并发访问请求的平衡数,所述并发访问请求的平衡数是特征化存储器设备的参数,通过测绘针对存储器设备的吞吐量的总未解决I/O得出,所述并发访问请求的平衡数与同所述存储器设备相关联的并发性访问最大吞吐量相关联,
工作负载特征化模块(108),用以按照与所述工作负载相关联的至少一个参数特征化所述工作负载,以及
并发请求调度处理模块(110),其用来
接收与访问请求存储位置值相关联的具有实时优先级的访问请求,以及
基于访问请求存储位置值以及特征化所述存储器设备以及所述工作负载获得的参数,处理所述具有实时优先级的访问请求。
15.一种用于具有不同优先级访问请求的工作负载的存储器设备的存储访问调度的设备,所述工作负载包括具有实时优先级、以及较低实时优先级访问请求的不同的优先级访问请求,所述设备包括:
用于按照与所述存储器设备相关联的至少一个参数特征化所述存储器设备的装置,其包括
 用于 确定并发访问请求的平衡数的装置,所述并发访问请求的平衡数是特征化存储器设备的参数,通过测绘针对存储器设备的吞吐量的总未解决I/O得出,所述并发访问请求与同所述存储器设备相关联的并发访问最大吞吐量相关联;
用于按照与所述工作负载相关联的至少一个参数特征化所述工作负载的装置;
用于接收与访问请求存储位置值相关联的具有实时优先级的访问请求的装置;以及用于基于访问请求存储位置值以及特征化存储器设备以及工作负载获得的参数,使用处理器处理具有实时优先级的访问请求的装置。

说明书全文

并发请求调度

背景技术

[0001] 磁盘调度器管理针对输入/输出(I/O)数据的未决磁盘访问请求的队列,决策在什么时间以及按照什么顺序来向存储设备提交请求。通常,访问请求到达来自多个应用中的正在进行的流中的处理器。访问请求通常被寻址到与存储设备中的存储位置相关联的逻辑。可选地,磁盘访问请求包含优先级值。磁盘访问请求常常也包含截止期限,其规定到哪个时间时该磁盘访问请求将具有完全处理。
[0002] 调度器常常尝试最小化平均总服务时间并且最大化总系统吞吐量。另外地,当存在具有截止期限的磁盘访问请求时,该调度器还尝试确保所有的这样的请求在它们的截止期限之前都被完成。总服务时间是从在处理器处接收到访问请求到向存储设备转入或转出数据完成所花费的时间。总系统吞吐量是与向存储设备转入或转出数据的平均传送速率相关联的。总服务时间是该请求在调度器处的队列中花费等待的时间的函数。总服务时间还是设备结构的函数,该设备结构包括寻道和旋转距离,该距离将I/O头和与分配给I/O数据的块相关联的磁盘位置分离。总服务时间还包括用来向磁盘转入或转出数据的时间。
[0003] 调度器常常尝试通过组织根据块位置的请求最小化针对一组请求的总服务时间来最小化在该组请求中的服务块之间的寻道和旋转等待时间。简化调度器常常根据按照逻辑块位置的递增序列来组织所述块。简化处理环境常常仅涉及具有相同优先级平的访问请求。然而,磁盘访问请求能够具有不同的优先级。一个公用类型的优先级是具有一点或没有分配给它优先级的背景类型请求。这些常常采用具有更高优先级水平的请求组合在调度器中,所述请求诸如尽(best effort)优先级请求。当不同优先级类型被同时地处理时,如果该调度器不将较低优先级请求发送给存储设备而较高优先级请求仍在存储器上进行处理的话,针对存储设备的总体吞吐量性能可能受到损害。这种类型的情况常常导致对系统吞吐量巨大的负面影响。
[0004] 实时访问请求具有比尽力或背景优先级请求更高的优先级。在一些环境中,同时地处理具有较低水平优先级请求的实时请求是尤其繁重的。复杂化(诸如缺乏(starvation))的潜在可能甚至更严重,因为实时磁盘访问请求经常与某一用于I/O数据保证的就近立即访问的水平相关联。在尝试满足这些保证中,调度器通常将其他限制设置在总系统效率和吞吐量上。此外,不满足或错过保证的访问截止期限是另一类型的与调度实时访问请求的困难。所有的这些困难都与调度实时访问请求相关联。当调度实时访问请求作为实时和较低优先级请求的混合物的一部分时,这些困难常常是混合的。附图说明
[0005] 根据以下描述参考附图,本公开的特征对不本领域的技术人员来说将变得显而易见,在图中:
[0006] 图1是图示出根据本公开的示例的调度装置的框图
[0007] 图2是图示出根据本公开的示例的与图1中所示的调度装置一起操作的调度架构的架构图;
[0008] 图3是示范了根据本公开的示例的用于存储设备的并发请求的平衡的最大数(N)的确定的曲线图;
[0009] 图4是示范了根据本公开的示例的确定用于存储设备的并发请求的基本上最优最大数(N)和存储设备的吞吐量的效率的曲线图;
[0010] 图5是示范了根据本公开的示例的用于存储设备的队列尺寸和吞吐量之间的关系的曲线图;
[0011] 图6是示范了根据本公开的示例的用于存储器设备的最坏情况等待时间和队列尺寸之间的关系的曲线图;
[0012] 图7是示范了根据本公开的示例的根据用于随机请求的平均请求尺寸确定吞吐量预调时间(rate time)的曲线图;
[0013] 图8是示范了根据本公开的示例的根据用于随机请求的平均请求尺寸确定最坏情况吞吐量预调时间的曲线图;
[0014] 图9是示范了根据本公开的示例的使用图1中所示的调度装置在等同条件下在24MB/s以上的改善的吞吐量的曲线图;
[0015] 图10是示范了根据本公开的示例的使用图1中所示的调度装置在等同条件下用于实时请求的改善的错过截止期限比率的曲线图,通过该图其中L-CSCAN具有零错过截止期限比率;
[0016] 图11是示范了根据本公开的示例的使用图1中所示的调度装置在等同条件下在20 MB/s以上的改善的吞吐量的曲线图;
[0017] 图12是示范了根据本公开的示例的使用图1中所示的调度装置吞吐量如何根据递增的最小初始松弛时间值(λ(lambda))改变的曲线图;
[0018] 图13是示范了根据本公开的示例的在使用图1中所示的调度装置在等同条件下调度具有尽力请求的实时请求时在随机或顺序请求条件下改善的吞吐量的曲线图;
[0019] 图14是图示出根据本公开的示例的调度方法的流程图
[0020] 图15是图示出根据本公开的示例的与图14中所描绘的调度方法相比更详细的调度方法的流程图;以及
[0021] 图16是图示出根据本公开的示例的用来给硬件平台提供如图1中所示的调度装置的计算机系统的框图。

具体实施方式

[0022] 出于简化和说明的目的,主要通过参考其示例来描述本公开。在以下描述中,许多特定细节被阐述以便提供本公开的透彻的理解。然而,应当容易地显而易见的是,本公开可以在没有对于这些特定细节的限制的情况下被实现。在其他实例中,为了避免不必要地弄混本公开的描述,没有详细描述一些方法和结构。在其他实例中,为了避免不必要地弄混本公开,已经没有详细描述一些方法和结构。如在本文中使用的那样,术语“包括”意指包括但不限于,术语“包括有”意指包括有但不限于。术语“基于”意指至少部分地基于。
[0023] 1. 综述
[0024] 公开的是用于具有包括实时访问请求的不同优先级访问请求的工作负载的存储器设备的用于存储访问调度的方法、装置以及计算机可读介质。本公开解决了针对在混合工作负载中的实时访问请求与成功地满足保证的访问最坏情况服务总时间相关联的困难,同时还维持了高水平的存储器吞吐量性能。
[0025] 本公开跨越大范围的操作条件提供基本上最优的吞吐量。本公开利用至少一个特征化存储器设备和与该存储器设备相关联的工作负载的参数。描述这些参数的数据可以在操作期间动态地更新。出于计算的立场,机器可读指令是非常有效的并且可以使用O(log(n))型机器可读指令加以实现,其中n是根据请求的队列的尺寸。机器可读指令相对简单并且可以使用非常少的代码行来实现,因此作出实施方式的验证不那么复杂。
[0026] 2. 定义
[0027] 如本文所使用的术语“访问请求”是针对用于检索或提供与存储设备相关联的IO数据的数字指令。数据的存储器地址可以是指令自身的一部分。当处理器解码该指令时,其获得存储器地址,从该地址处能够读取/存储需要的信息。如本文所使用的,术语“访问请求”与术语“请求”被可交换的使用。
[0028] 如本文所使用的,术语“并发访问请求的平衡数(N)”是特征化存储器设备的参数。并发访问请求的平衡数(N)可以通过测绘针对设备的吞吐量的总未解决I/O得出。如在下文更详细描述的,关于图3,得到的图中的拐点区域是并发访问请求的平衡数(N)。该确定采用具有可接受的最坏情况服务次数的最大吞吐量性能找到点N。这通常发生在该曲线的拐点处,在该处根据N的吞吐量性能变平。
[0029] 如本文中所使用的,术语“突发性值”是诸如与工作负载中的实时请求的突发性相关联的计数或时间段的值。
[0030] 如本文中所使用的,术语“并发访问最大吞吐量”是针对在平均请求尺寸处的并发请求的平衡数(N)关联的吞吐量。
[0031] 如本文中所使用的,术语“机器可读指令集(MRIS)”,是可以被机器读取的数字指令集,注入算法、程序、代码、软件等等。
[0032] 如本文中所使用的,术语“最大最坏情况吞吐量预调时间(1/IOPS)值”,是与处理通过主队列的并发访问请求的平衡数(N)相关联的时间值。与Τ(tau)相关联的值是可以至少与用于读取/写入、随机/顺序以及请求尺寸的值并且可选地其他值相关联的函数。还看到如下文定义的吞吐量预调时间。
[0033] 如本文中所使用的,术语“存储器设备”是计算机设备的片,诸如存储设备、磁带、磁盘等,或在其中或其上能够存储数据和指令的计算机设备的相关片的任何组合,通常采用二进制形式。
[0034] 如本文中所使用的,术语“最小初始松弛时间值(λ)”是与总处理时间相关联的时间值,所述总处理时间用来在CRC架构中通过针对实时访问请求的未决队列(主队列和黑盒设备队列)传递实时访问请求。
[0035] 如本文中所使用的,术语“未决队列”是保持基于与添加的访问请求(诸如访问优先级水平)相关联的一些方面已经被添加到未决队列的访问请求的队列。在未决队列中的访问请求在将被分配给另一队列(诸如主队列)的未决队列中等待,在它们针对与存储设备相关联的存储位置的I/O访问将被处理之前。
[0036] 如本文中所使用的,术语“主队列”是保持访问请求的队列,所述访问请求已经被添加到主队列随着其已经被授权直接访问存储设备并且在将被分配的主队列中等待以及通过与用于对与存储器设备相关联的存储位置的I/O访问的存储器设备相关联的内部黑盒队列进行处理。
[0037] 如本文中所使用的,术语“实时优先级”是被分配给与用于处理存储器设备中服务的实时访问请求的截止期限相关联的实时访问请求的高优先级。
[0038] 如本文中所使用的,术语“SCAN”是机器可读指令集(MRIS),还被称为MRIS,用于调度对于磁盘的多个访问。根据存储设备上的数据位置对许多请求进行排序。这降低了对于在最坏情况下对整个磁盘的进行一次扫描或横扫的磁盘臂运动。能够根据磁盘的道间寻道时间、最大寻道时间(一次扫描)、以及最大旋转等待时间来估计服务时间。
[0039] 如本文中所使用的,术语“存储位置值”是标识数据可以被存储在存储器设备中的磁盘的哪里的其他位置行列式或逻辑地址。
[0040] 如本文中所使用的,术语“吞吐量预调时间”是请求完成之间的平均时间,其可以被定义为IOPS(I/O每秒)的倒数。由于架构的并发性,利用吞吐量预调时间而不是请求的平均服务时间。使用吞吐量预调时间作为用于请求的预期资源需求,通过求和,该请求允许更简单且更准确对于存储设备或存储器设备利用的说明。
[0041] 如本文中所使用的,术语“总最坏情况服务访问时间”是在实时访问请求在错过其实时服务截止期限之前在存储器设备中必须被服务的之前可以消逝的最长时间段。
[0042] 如本文中所使用的,术语“最坏设备服务等待时间值(δ(delta))”是与包括存储器设备中的内部黑盒队列的存储器设备相关联的黑盒布置中的总服务时间相关联的时间值。
[0043] 如本文中所使用的,术语“最坏情况队列等待时间值(ζ(zeta))”是与处理通过CRS架构中的主队列的请求相关联的时间值。ζ本质上不是工作负载的特性,而是相对于CRS架构(诸如CRS架构200)得出的参数。
[0044] 3. CRS架构
[0045] 参考图1,示出了用于实现CRS架构的示范性示例并发请求调度(CRS)系统100的简化框图,所述CRS架构诸如图2中所示的CRS架构200。所述CRS系统100在下文中更详细地说明。在CRS系统架构200中,根据示例,存在多个队列,202到210,其根据功能和优先级水平相互关联。如在下文中更详细说明的,在CRS架构200中,参数还可以与队列202到210相关联。
[0046] CRS架构200包括紧接存储器设备以及其操作系统的常规内部黑盒队列202。在黑盒队列202之前,存在主队列204。在这个示例中,主队列204利用针对被标记为L-CSCAN的调度的机器可读指令集(MRIS)。如在下文中更详细说明的,L-CSCAN(其还被称为受限制的CSCAN或LCSCAN)是题为循环 SCAN (CSCAN)已知MRIS的变体。
[0047] L-CSCAN 管理主队列204,其尺寸被限制以提供最坏情况排队延迟保证。主队列204可以包含具有不同优先级水平(实时、尽力)的访问请求以及背景优先级水平访问请求。
这些不同的优先级请求被存储在主队列204中以得到最优化的性能。
[0048] 在图2中,主队列204左侧,存在用于实时请求的未决队列206。在这个示例中,未决队列206利用题为SCAN-EDF的MRIS(即,最早截止期限优先SCAN)用于管理实时优先级请求,其正在等待将被许可进入主队列202。还在CRS架构200中的是用于针对MRIS利用的被标记为CSCAN的MRIS管理的用于尽力优先级请求的未决队列208。根据这个示例,可能或可能没被许可进入主队列204的背景请求被保持在未决队列210中。
[0049] 在替换架构中,除了CRS架构200之外,在没有实时请求的情况下,所述替换架构可以简单的为馈送到存储器设备中的CSCAN,在设备处保持并发请求的常数存储库。在修改或延展这个类型的替换架构来提供实时保证时存在许多困难。首先,针对CSCAN队列的最坏情况队列延迟通常约是CSCAN队列长度的两倍,因此CSCAN队列的长度应该是受限制的。这使得该最坏情况队列延迟通常小于最小初始松弛时间减去存储设备中最坏情况等待时间。然而,CSCAN的最坏情况行为基本上不受控制。为了避免这种类型的不受控制的最坏情况行为,CRS架构200使用CSCAN、L-CSCAN的变体,在下文中将更加详细的描述。其次,一旦CSCAN队列尺寸被限制,则可能在受限制的CSCAN队列之前存在未决队列以吸收仍然不能被发送到CSCAN队列的超额请求。CRS架构200使用L-CSCAN用于实时请求和其他优先级请求。所以用于实时请求的未决队列206利用SCAN-EDF作为有效的、截止期限敏感的MRIS来管理仅持有实时请求的未决队列206。用于非实时请求的未决队列可以是有效的。所以根据该示例,CRS架构200利用持有具有尽力优先级的请求的CSCAN未决队列208。第三,针对实时请求,CSCAN队列208的尺寸可以被减小以说明实时请求可以在SCAN-EDF队列206中花销的最大时间。SCAN-EDF队列206的这个尺寸上的减小可以是请求流的突发性的函数。
[0050] CRS架构200可以根据各种其他示例加以修改。例如,CRS架构200可以被修改以用Fahhradlike排队系统代替单个尽力CSCAN队列208以确保跨越多个设备的尽力请求流的公平性。L-CSCAN是基于CSCAN的,因为其公平性属性和因为其非常好地与较低水平的调度器交互产生几乎最优化的整体系统性能。然而,可以在CRS架构200中利用其他调度MRIS程序来管理优先级队列204只要最坏情况队列延迟被保证或请求截止期限被满足。一旦这些限制被达到,不管在存储器设备中正在被扫描的磁盘上的它们的位置如何,都针对下一个扫描来调度新请求。
[0051] 图2也示范了如何计算和控制CRS架构200中队列202-210的最坏情况行为以确保实时截止期限被满足。因为CRS架构200被设计为所连接的队列的流水线,该流水线中的每个队列都可以被认为是独立的。SCAN-EDF队列206、L-CSCAN主队列204,以及OS和设备队列202。在CRS架构200中,任何内部OS调度器、任何内部RAID控制器和任何内部存储设备调度器的组合全部被作为与黑盒队列202相关联的单个黑盒设备来对待。
[0052] 根据示例,第一种用来在CRS架构200中提供实时保证的方法将用来特征化在队列202处存储器设备的性能。特征化存储器设备的性能可以包括用于基于试验数据预测用于该存储器设备的最坏情况等待时间以及最坏情况吞吐量预调时间的模型。最坏情况吞吐量预调时间可以被定义为当在给定并发水平下处理给定尺寸的请求时,每秒最坏情况IO操作的倒数。
[0053] 在特征化存储器设备时的一个元素涉及主队列204(在图2中示出)作为L-CSCAN队列204。L-CSCAN MRIS可以被设计使得最坏情况L-CSCAN队列等待时间(ζ)214是主队列204长度的函数。然后接下来的考虑是确定针对给定L-CSCAN主队列204长度的最坏情况设备完成时间。因为CRS架构200的目标是确保所有实时请求及时进入L-CSCAN队列204以满足它们的截止期限,所以CRS架构200应当允许用于当前在L-CSCAN队列204中用来消耗的请求的时间预算上额外时间来为预算时间内的实时请求腾出空间。
[0054] 换句话说,该最坏情况估计时间(λ)218可以包括在图2中示范的三个时间预算项:存储器设备中的最坏情况时间(δ)212、L-CSCAN队列内的最坏情况时间等待(ζ)214、以及等待进入L-CSCAN队列204的SCAN-EDF队列内的最坏情况时间等待(σ(sigma))216。
[0055] 因为存储器设备中的最坏情况等待时间(δ)212是固定的或给定的,所以那么控制点可以采用L-CSCAN队列204的尺寸。这可以然后支配 L-CSCAN 队列中的最坏情况时间 (ζ) 214。因此,最大尺寸L-CSCAN 队列204可以控制可用于等待进入L-CSCAN 队列204的SCAN-EDF队列206中的实时请求的时间预算(即,最坏情况估计(σ)216)。在L-CSCAN 队列中的最坏情况时间(ζ)204可以是主队列204中请求的数目的函数和/或在由L-CSCAN MRIS管理的那些请求处的速率。
[0056] CRS架构200中的实时工作负载的突发性或可变性可以影响分配给σ 216的总最坏情况估计(λ)218时间预算。一个方法可以是测量突发性,并且另一方法可以是具有生成用来声明其突发性的请求的应用。类似于在 L-CSCAN队列中花费的时间(ζ)214,实时请求在SCAN-EDF队列中花费的时间(σ)216可以是SCAN-EDF队列206的长度和最坏情况吞吐率的函数。
[0057] SCAN-EDF队列206的目的是吸收突发并且保持实时请求直到它们可以被提交给 L-CSCAN队列204。这阻止了L-CSCAN队列204变得过大并且因此阻止了在 L-CSCAN队列204中请求等待缺乏或错过它们的截止期限。使用SCAN-EDF队列206确保根据截止期限实时请求被提交给L-CSCAN队列204。其还减小了不按扫描顺序提交的实时请求不错过它们的截止期限的可能性。替换方法可以考虑请求尺寸的可变性。在这个方法中,按照其最坏情况吞吐率定义请求。在LCSCAN等待时间(ζ)214和SCAN-EDF等待时间(σ)216的情况下,可以依次按照时间来定义而不是按照它们可以保持的请求的数目。
[0058] 4. 存储器设备特征化
[0059] 在以下示例中,各种示例的结果被呈现。这些结果可以在运行WINDOWS SERVER 2008具有两个双核Intel处理器和4GB的RAM的HP DL360服务器上生成。用于性能测试的存储阵列由八个146GB 15k RPM SAS 磁盘构建,附连在HP P410i存储控制器的两个SCSI电缆上(每个电缆上四个磁盘)。 该存储被配置在具有128kB条带以及总计1.1TB的可用尺寸的RAID0 阵列中。直接使用访问设备的这些示例中使用的MRIS,而不是使用文件系统,以及利用线程和异步的I/O能力来一次发送多个I/O到设备。
[0060] 除非以其他方式指明,否则所述基准使用具有均匀随机磁盘地址的闭环环境。通常在等待将被发送到设备的队列中存在四千个(4000)尽力读取请求,并且所使用的设备具有六十个(60)并发请求。实时请求通常具有三十(30)秒的初始松弛时间,并且使用磁盘地址的均匀随机分布。考虑到请求尺寸,它们的截止期限通过时间被均匀地隔开以匹配期望的吞吐率。当需要确保三十秒初始松弛时间时,新的实时请求被添加到队列,而不管之前的实时请求是否已经被如何服务。另外,只读请求流被用来提出从RAID控制器写缓冲区缓存和SCSI磁盘直接写入报告中获得的性能增益的撰因子。
[0061] 为了提供实时保证,根据示例,存储器设备必须首先被特征化。存在许多可以影响设备性能的参数,诸如并发性、请求尺寸以及请求序列性。准确地特征化存储器设备可以通过潜在地存在若干一起交互的设备的事实来完成,所述设备诸如操作系统内的磁盘调度器、RAID控制器中的磁盘调度器以及写入缓存、以及磁盘其自身中的磁盘调度器。个别的设备可以构成存储器设备,或可以构成存储器设备的设备的任何组合。在特征化与存储器设备相关联的参数时,存储器中相同的部件可以针对每个特征化的参数被加以特征化。
[0062] 一旦实时请求已经通过应用被发送到存储器设备,那么应用可能必须确保的未解决的实时请求及时完成的控制通过不准许其他请求进入存储器设备将缺乏替换请求的设备内调度器来服务。优选的是并发性始终被最大化,或最大化性能。这意味着实时请求应当提前足够远地被提交给设备使得至少在最坏情况估计服务时间之前它们确实几乎不变地完成。否则并发性必须被强制实行并且设备缺乏请求直到它完成处于错过其截止期限险的实时请求为止。
[0063] 图3是示出了根据针对两个相应请求尺寸(4KB和1MB)的设备处的请求并发性的吞吐量的曲线图300。使用具有四千个(4,000)请求的闭环系统使用磁盘地址的均匀随机分布来完成示例,并且穿过CSCAN队列。如图3所示范的,存在使用并发请求显著的性能益处。
[0064] 图3示范了作为特征化存储器设备的参数的并发访问请求的平衡数(N)的确定。并发访问请求的平衡数(N)可以使用CRS装置102中的设备特征化模块106得出,所述装置在下面更详细地描述。该参数可以通过测绘针对吞吐量的总未解决I/O得出。
[0065] 如图3中所示,针对示例中的存储器设备,与并发性关联的益处在约六十个(60)并发请求处达到曲线图中的拐点。得到的图中的拐点区域是并发访问请求的平衡数(N)。该确定找到与最大吞吐量性能有关的点N还具有可接受的最坏情况服务时间。在常规条件下,这发生在该曲线的拐点处,在该处根据I/O的数目吞吐量性能变平。在示例的确定中,如图3所示,跨越从4KB到1MB请求尺寸的范围的用于存储器设备的60个并发请求是一致的。在以下示例中,60个并发访问请求被用作平衡数(N),当默认值测试用于确定与特征化存储器设备相关联的其他参数的存储器设备的并发性时。
[0066] 图4是示范了根据用于存储器设备的请求尺寸的总吞吐量的曲线图400。针对图4中所示的两个曲线生成该数据。一个曲线示出了当存储器设备处一次存在不同尺寸的单个请求时的实例(即,1的测试并发性)。另一个曲线示出了当存储器设备处一次存在六十个并发请求时的实例(即,60的测试并发性)。两个曲线示范了跨越从1KB到16MB的请求尺寸的范围利用可用的并发性的益处是持续显著的。
[0067] 图5是示范了根据与测试的存储器设备相关联的CSCAN队列尺寸的尺寸吞吐量性能如何改变的曲线图500。CSCAN队列对请求重新排序以最小化寻道时间。其还处理在时间更紧挨在一起的请求,所述请求设备上按空间邻近。这通常使得针对磁盘内调度器(其可能使用位置意识调度MRIS)更好地优化吞吐量性能成为可能。
[0068] CSCAN队列越大,就越好来针对CSCAN队列来按空间和时间聚集请求。如果当请求被发送到磁盘时请求被更紧地聚集,则针对旋转位置意识调度器在单个旋转中服务多个请求就越好。图5示出了两个曲线502和506,具有六十个未解决的请求。曲线502具有六十个未解决的请求,所述请求具有1MB的请求尺寸。曲线504具有一个未解决的请求,所述请求具有1MB的请求尺寸。曲线506具有六十个未解决的请求,所述请求具有4 kB的请求尺寸。曲线
508具有一个未解决的请求,所述请求具有1 kB的请求尺寸。如图5中所示,随着CSCAN队列尺寸增加,磁盘吞吐量也增加。
[0069] 当一起考虑时,图4和图5的结果示出了维持并发性和最大化CSCAN队列尺寸以便最大化吞吐量都是重要的。如采用测试设备所示出的,吞吐量根据并发性和CSCAN队列尺寸而增加。然而,一直到约六十个请求,并发性都比CSCAN队列尺寸重要。这样通过确定针对存储器设备60个并发访问请求的平衡数来最大化并发性将被通过最大化CSCAN队列尺寸来给定优先级。
[0070] 还有助于当工作负载增加时吞吐量性能不降低。另外存储器设备可以进入负反馈循环,其中在那里增加的负载可以引起降级的性能。因此可以依次引起其他的负载增加。为了避免这样的情况,CSCAN MRIS应当能够最大化并发性,或至少保持负载下最大并发性。在这样的情况下,并且只要增加的负载产生递增或非递减的队列尺寸,性能就不会在增加的负载下降低。
[0071] 该结果示范了并发性和CSCAN调度都对采用高并发性和大CSCAN队列进行优化的吞吐量性能有影响。然而,并发性对于测试的存储器设备明显具有该更大的影响。所以如果调度器必须在并发性和CSCAN队列深度之间进行选择,那么应当优选的是保持并发性。
[0072] 接下来,在确定并发性访问请求的平衡数(N)之后,也可以确定其他参数以进一步特征化所述存储器设备。设备特征化还必须考虑读取对比写入性能。另一个设备特征化参数是设备的最坏情况等待时间,其可以被表示为最坏情况设备服务等待时间值(δ)。另一个设备特征化参数是针对随机或顺序请求流的吞吐量预调时间。使用CRS装置102中的设备特征化模块106得出所有的设备特征化参数,在下文中更详细地描述。
[0073] 例如,如果在磁盘自身中存在排队MRIS,其可以为MRIS(诸如SATF),其可能缺乏请求。类似地,如果在磁盘处存在未解决的平衡数N并发请求,则可以利用CRS装置102中的设备特征化模块106来得出用于那些请求的最坏情况服务时间。CRS装置102中的设备特征化模块106可以得出具有全并发性的最坏情况等待时间,跨越请求尺寸的范围、并且跨越CSCAN队列尺寸的范围、并且选择最大值。
[0074] 图6是示出了根据请求尺寸的最坏情况等待时间的曲线图600,采用针对六十个未解决的请求的纯随机请求流,采用在磁盘之前并且在该磁盘前没有任何队列情况下大的4,000个请求CSCAN队列。当按照随机顺序(CSCAN队列长度为1)给定请求时,最坏情况时间被缩短。跨越请求尺寸的范围,针对60个未解决请求以及 4,000 个请求的CSCAN队列的最坏服务时间被相对地稳定在约1,100ms,建议的是更低水平的调度器,其具有某种程度的具有阈值的反缺乏(anti-starvation)参数或被设定成大约该值的老化(aging)参数。由于用于更大的CSCAN队列尺寸的最坏情况性能通常更坏,并且由于跨越请求尺寸的更坏情况等待时间相对稳定,通过针对两个队列尺寸的16MB请求尺寸处、约1.6秒处的最大值来逼近最坏情况等待时间是最坏情况等待时间的合理估计。
[0075] 使用类似于图3中的那些条件来测量最坏情况吞吐量,除非有空CSCAN队列从而使得该设备采用均匀随机请求流来呈现。使用CRS装置102中的设备特征化模块106来得出保持设备特征化参数的配置文件可以存储具有根据请求尺寸的全并发性以及最坏情况吞吐量的最坏情况等待时间。
[0076] 图7是示出了根据用于随机请求流的请求尺寸的吞吐量预调时间的曲线图700,其中CSCAN队列尺寸为1,并且其中设备处具有六十个(60)并发请求。最坏情况吞吐量预调时间是用于队列尺寸为1的CSCAN,因为该请求流当被提交到设备时被最大限度地随机化。
[0077] 为了比较,图7还示出了当CSCAN队列具有4,000个请求时的吞吐量预调时间,并且示范了如果寻道和旋转延迟管理费用在总传送成本中占主导,CRS架构执行更好,尤其针对更小的请求。
[0078] 图8是类似于如上所述的图7的曲线图800,除此之外图8还示出了针对根据请求尺寸的顺序的和随机请求流的最坏情况吞吐量预调时间。如图8中所示,最坏情况吞吐量预调时间比用于随机请求流情况更小。针对小的请求尺寸,预调时间明显地小于用于随机请求流的。
[0079] 在针对给定请求确定预期的吞吐量预调时间值时,CRS装置102中的设备特征化模块106、IO每秒通过按照请求尺寸以MB/s为单位划分吞吐量来获得,当该设备具有全并发性(平衡N并发未决请求),但是在设备前面不排队,使得随机请求流是全随机的。针对随机请求的最坏情况吞吐量预调时间是图7中的实线,并且针对顺序请求的是图8中的实线。所以,针对4KB的随机请求,用于存储器设备的最坏情况吞吐量预调时间是近似0.4ms,如图7中所示。针对4kB的顺序请求,最坏情况吞吐量预调时间是近似0.03ms,如图8中所示。
[0080] 5. 管理CRS架构中的队列的MRIS
[0081] CSCAN
[0082] 循环SCAN是已知且有效的磁盘调度MRIS。针对随机请求流,其具有优秀的公平性特性,以及最佳或接近最佳的性能,尤其用在存储器设备处具有位置意识调度MRIS的分层的架构中时。CSCAN包括两个MRIS:Add以及Pop,如在MRIS 1和2中所示,其增加新的请求到队列并且相应地调度下一个请求。
[0083] CSCAN通常被实现为一对有序集,一个被标记为当前的而一个标记为下一个。当前集包含其地址比当前磁盘位置更多的那些请求,而下一个集包含其磁盘位置比当前的磁盘位置更少的那些请求。还存在当前磁盘头位置、偏移的概念,其从磁盘的一端扫至另一端,在跳回到开始之前。
[0084] CSCAN MRIS 1。添加请求到CSCAN
[0085]
[0086] CSCAN MRIS 1示出了用于将新请求添加到CSCAN队列的MRIS。基本上,如果该请求的地址小于该偏移,则该请求不需要在下一个扫描中被服务,因此其被添加到下一个集。否则,该请求的地址大于或等于当前头位置并且该请求仍能够被在该扫描中被处理,因此其被添加到当前集curr。在该示例中,使用被实现为二叉树的C++ STL集分类来实现当前和下一个集,因此插入、删除以及最小操作每个都花费O(log(n))的时间,其是非常有效的。在该示例中,CSCAN MRIS 1 花费O(log(n))的时间。
[0087] CSCAN MRIS 2。 从CSCAN取出请求。
[0088] 。
[0089] CSCAN MRIS 2示出了用于选择将被提交给设备的下一个请求。首先,CSCAN MRIS 2 检查来看是否当前扫描已经完成;并且如果已经完成,则其将当前和下一个集互换以开始下一个扫描。其然后在当前扫描中选择最小的请求并且进行一些基本统计操作:将所选请求从当前集中去除并更新当前头位置。CSCAN MRIS 2也花费O(log(n))的时间。
[0090] 实现集数据结构使得其将两个操作curr.smallest()和curr.delete()合并到单个操作中是可能的,或至少其不需要树结构的第二遍历,产生两个性能改进的因子。采用均匀随机访问流以及具有N个请求的闭合排队模型,如在请求计数中测量的,平均最坏情况服务延迟是队列长度的大约两倍或2N。当开始新的扫描时,初始curr扫描是空的并且下一个包含N个请求。在该互换之后,下一个是空的而curr具有N个请求。
[0091] LCSCAN
[0092] 根据示例,作为用来管理主队列204的MRIS,存在实现CSCAN、受限制的CSCAN或L-CSCAN的变体MRIS。该 L-SCAN MRIS提供关于最坏情况延迟的硬保证并且避免了引起单个扫描可能无期限的缺乏。因为L-CSCAN队列204的尺寸可能是受限制的,所以然后在添加新请求到当前扫描之前,控制具有附加测试的单个扫描的长度是可能的。
[0093] L-CSCAN MRIS 1。添加请求到受限制的CSCAN
[0094] 。
[0095] L-CSCAN MRIS 1是用于将新请求添加到队列的受限制的CSCAN MRIS。其不同于标准CSCAN MRIS。在第2行用于标准CSCAN的通常测试是if (r.offset < offset)。L-CSCAN 添加第二子句限制了可以被添加到当前扫描的请求的次数的数目,curr.size() < count。这个额外的子句阻止了L-CSCAN 缺乏请求,因为在计数请求已经被添加到当前扫描队列之后,所有新的请求被添加到下一个队列,而不管它们的位置。
[0096] L-CSCAN MRIS 1 中的计数值仅追踪被添加到当前队列的请求,其忽略被添加到那样队列的所有请求,当其是最近的Swap()之前的下一个队列时。L-CSCAN MRIS 1,像CSCAN MRIS 9是非常有效的,花费O(log(n))的时间。
[0097] L-CSCAN MRIS 2。从受限制CSCAN中取出请求。
[0098] 。
[0099] L-CSCAN MRIS 2示出了用于 Pop() MRIS的伪代码,其不同于仅在第4行的标准CSCAN的伪代码,其中当我们开始新的扫描时重置计数。L-CSCAN MRIS 2又非常类似于CSCAN MRIS 2并且具有性能O(log(n))。
[0100] 相对于所有描述的MRIS的上述计算是基于请求的数目的,而不是实际服务次数。如果请求流具有统一请求尺寸,则该两种情况是相同的。然而,实际上大多数系统具有异构请求流,并且应用可以具有请求尺寸广泛的混合。在这种情况下,可以按照时间来规定最坏情况等待时间,并且还按照吞吐量预调时间来完成关于可以被添加到当前扫描的请求的数目的上述计算。为此,MRIS可以记针对队列整体以及针对每次扫描的吞吐量预调时间总和的流水账。因为最近的互换,其必须还保持被添加到当前扫描的吞吐量预调时间的总和。
[0101] 当从请求计数基础切换到时间基础时,可能必要的是该措施被用来决定什么时候结束扫描。这可以不是单调递增的。例如,为了完成大请求并且插入小请求,期望的服务时间可能下降到扫描时间阈值以下。由于请求可以是顺序的,所以其可能需要添加状态参数到系统,因此一旦作出决定,请求就可能已经被添加到当前扫描,但是不是这样的,因为预期的扫描时间将超过期望的边界,然后可能设定标记阻止任何其他请求被添加到该扫描。
[0102] 这个基于时间的L-CSCAN变量可以使用五个新的状态参数:扫描、开始、sum_current(当前总和)、sum_next(下一个总和)以及关闭,并且其依赖于针对每个扫描的当前最坏情况吞吐量预调时间估计。扫描定义单个扫描可能花费的时间的最大量、开始是当前扫描开始的时间、sum_current是针对在当前扫描中的请求的预期吞吐量预调时间的总和、sum_next是针对在下一个扫描中的请求预期吞吐量预调时间的总和、以及关闭是规定新的请求是否仍然可以被添加到当前扫描的布尔值。
[0103] 可以从如上所述的存储器设备的评估中得出最坏情况吞吐量预调时间估计。这将考虑尺寸、读取|写入以及顺序的三个特性,其中尺寸是以字节为单位的请求尺寸、读取|写入规定该请求是读取请求还是写入请求,并且顺序是规定该请求是否是顺序的布尔值。通常,顺序可以使用简单滤波器来确定,但是在通常情况下顺序仅仅表明是否在队列中存在未决请求,其具有与处理紧接着当前请求的开始地址的字节的当前请求相同的读取|写入状态。
[0104] L-CSCAN MRIS 3。添加请求到基于时间受限制的CSCAN
[0105] 。
[0106] L-CSCAN MRIS 3示出了当按照时间来规定限制时的受限制的CSCAN MRIS。变量 r.expected()可以被定义为(最坏情况)吞吐量预调时间。L-CSCAN MRIS 1和L-CSCAN MRIS 3之间的主要区别是基于计数的测试与基于时间的测试的替换,并且事实是基于时间的测试改变了状态变量而不是简单地被在每次插入时连续地重新测试。此外,L-CSCAN MRIS 3的运行时间是O(log(n))。
[0107] L-CSCAN MRIS 4。从基于时间的受限制CSCAN中取出请求。
[0108] 。
[0109] L-CSCAN MRIS 2和L-CSCAN MRIS 4之间的主要区别是统计改变以在每次扫描的开始重置各种状态变量,所以运行时间仍然是O(log(n))。
[0110] L-SCAN 采用更长的扫描来优化磁盘性能。CSCAN产生尽可能长的扫描、以及在一些情况下更长、因此作为结果其性能是卓越的。用于任意调度实时优先级请求的已知MRIS限制了能够被打包到单个扫描中的请求的数目,其能够提供关于最坏情况队列延迟时间的更严格的保证。但是所述扫描通常比所必需的小得多,其可能导致比所必需的坏的多的性能。
[0111] CSched
[0112] CSched是被设计成提供最佳或接近最佳性能的MRIS,采用最小性能对提供实时截止期限保证进行惩罚。CSched可以在用户级应用中实现。还可以在操作系统中实现,(RAID)磁盘控制器、或甚至存储设备或存储服务。除了准确的设备特征化之外,其利用了两个配置参数:(σ, λ),其中σ定义为以秒为单位的最大突发尺寸并且λ定义为用于实时请求的最小初始松弛时间。磁盘特征化和这些参数然后被译成控制调度器的内部配置参数。
[0113] 注意的是可以使用漏桶模型来计算σ,除了代替按照请求规定按照时间规定的那些之外。简略地,漏桶模型可以被描述为如下。用于请求流的到达函数,R(s,t)是I/O请求人在时间间隔[s,t]中的总数。如果对于所有时间间隔[s,t],R(s, t) ≤ σ + rho (t-s),请求流被非常好的表现。在以下参考中漏桶模型被进一步描述:Parekh等人的A generalized processor sharing approach to flow control in integrated services networks: the single-node case. Networking, IEEE/ACM Transactions on 1, 3 (1993), 344–357; Sariowan等人的 Scheduling for quality of service guarantees via service curves. In Computer Communications and Networks, 1995. Proceedings., Fourth International Conference on (1995), pp. 512–520; 以及 Gulati等人的 pClock: an arrival curve based approach for QoS guarantees in shared storage systems. In Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems (San Diego, California, USA, 
2007), ACM, pp. 13–24,其中的每个都整体地结合到本文中。
[0114] 主要内部配置参数是在SCAN-EDF、L-CSCAN以及设备队列之间的可用时间预算的分配、λ。由于设备时间预算单独地通过请求流的最坏情况服务时间单独地限定,所以这可以从磁盘特征化为δ中直接地获得。下一块是用来确定必须分配给SCAN-EDF队列来吸收突发的时间预算,并且这简单的需要时间来处理最大突发或σ。剩余预算被分配给 L-CSCAN 队列。 L-CSCAN 队列尺寸,CSched用来确定 L-CSCAN 队列是否是完全的,以时间为单位来限定。
[0115] MRIS CSched 1-配置 CSched队列。
[0116] 。
[0117] MRIS CSched 1 描述了CSched数据结构并且示出了如何初始化各种元素。
[0118] MRIS CSched 2 添加请求到CSched。
[0119] 。
[0120] MRIS CSched 2示出了如何添加请求到CSched队列。请注意的是, lcscan.expected() 被计算为 lcscan.sumcurrent + lcscan.sumnext,并且是在lcscan队列中当前保持的所有请求的最坏情况吞吐量预调时间的总和。首先,如果添加请求到 L-CSCAN 队列将不会使它超出所允许的尺寸(如按照时间规定的那样),然而该请求被简单地添加到 L-CSCAN 队列。另外请求被添加到适当的未决队列,其是针对实时请求的SCAN-EDF以及针对尽力和背景请求的CSCAN。注意的是,该代码是通用的并且可以使用任何其他的调度系统用于这些非实时请求。
[0121] CSCAN MRIS 3。 从CSched取出请求。
[0122]。
[0123] MRIS CSched 3示出了当从队列中移除来将其提交给存储设备时发生了什么。首先,MRIS CSched 3从在第2行的 L-CSCAN队列中移除下一个请求。因为从 L-CSCAN队列中移除请求可能意味着现在存在空间来从未决队列增加请求,所以系统迭代地检查每个未决队列,以实时SCAN-EDF队列开始,寻找请求。只要存在用来添加请求到 L-CSCAN 队列的空间,其就这样做。LCSCAN队列一旦是完全的或未决队列是空的,它就停止。注意的是,在第6行的测试与在上述在MRIS CSched 2中在第2行的测试相同。 另外,第5行进仅仅将从队列中取出的下一个请求返回,在实际上没有移除请求的情况下。其大致等同于在上述MRIS CSched 1第9行处的第r行curr.smallest()。
[0124] 由于使用大约六十个(60)的并发性来获得基本上最佳的性能(见图3),所以然后只要存在任何排队的请求,系统就保持最大并发性。其次,由于通过在设备前面具有更大的CSCAN(或L-CSCAN)队列来改善性能(见图5),所以然后其试图来最大化L-CSCAN队列尺寸。然而,其试图限制队列尺寸来确保最坏情况队列延迟不超过该预算。
[0125] 受限制的CSCAN、L-CSCAN、调度器作用来:(1)以最佳方式或接近最佳方式提交请求到设备,使得较低级位置意识调度器能够更好地利用其重新排序用来最大化吞吐量能力的请求,以及(2)确保最坏情况调度延迟是受限制的使得实时保证可以通过解决方案作为整体来提供。
[0126] SCAN-EDF
[0127] SCAN-EDF队列吸收突发,来确保限制L-SCAN 队列的尺寸来提供实时保证。出于使用SCAN-EDF而不是 FIFO 或EDF队列的原因是为了可能的改善的性能,特别是具有突发工作负载。相对于截止期限不按顺序提交实时请求也是有帮助的。例如,工作负载可能趋向于非常突发的,具有新的需要每隔130ms的批处理,其中批处理可以包含多达数千的小请求,该小请求被相对于磁盘地址按照随机顺序提交给存储设备。在这种情况下,使用每个批处理内的SCAN意味着该请求以部分最优化的方式发送到 L-CSCAN队列,因此可以最大化整体吞吐量。
[0128] SCAN-EDF不限制本身的尺寸,但是假定工作负载被准确地特征化,则根据示例,其不能保持超过σ请求或大于与该请求相关联的时间段,并且按照SCAN-EDF队列中的请求经历的最坏情况队列延迟是σ*预期,其中预期的是针对请求流的预期的最坏情况吞吐量预调时间。
[0129] CSCAN 调度器
[0130] CSCAN调度器保持非实时请求直到在L-CSCAN队列中存在可用空间。请求从这些队列中按照优先级顺序来传递,因此例如背景请求将仅从背景CSCAN队列传递到L-CSCAN队列,如果并且仅在实时SCAN-EDF和尽力CSCAN队列为空时。其是可能的,并且对于利用替换架构可能有用的,所述替换架构诸如在Gultai等人中公开的pClock,pClock: 在共享存储系统中用于QoS保证的基于到达曲线的方法。In Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems (San Diego, California, USA, 2007), ACM, pp. 13–24, 其通过上述引用整体地结合到本文中。此外,其他合适的已知架构可以被用来控制从各种非实时流到L-CSCAN队列的请求的提交。
[0131] 6. 结果
[0132] CSched MRIS的性能类似于CSCAN的性能,除此之外CSched不具有错过的截止期限同时CSCAN不提供实时保证。在两个高工作负载条件下测试CSched MRIS的性能:具有各种工作负载的均匀随机实时请求流,所述各种工作负载具有均匀随机或顺序尽力请求流。当实时和尽力请求流是均匀随机时,最小化整体性能,同时出于公平性观点,顺序尽力请求流提供最对抗的请求用于CSCAN。许多尽力工作负载是均匀随机和顺序请求的一些混合。因此实际性能可能是这两个工作负载之间的中间物。可以按照具有均匀随机实时和尽力请求流来特征化应用的工作负载。然而,通常存在请求尺寸的混合,而不是均匀4KB尺寸。
[0133] 图9是示出了当使用标准CSCAN队列时根据实时数据速率需求的两个工作负载的吞吐量的曲线图900。第一工作负载是用于实时和尽力请求的均匀随机请求模式,并且第二工作负载是用于实时请求的均匀随机请求模式和用于尽力请求的顺序模式。实时请求流是光滑的。实时请求具有三十(30)秒的初始松弛时间,并且CSched配置了分配给SCAN-EDF的零(0)秒以及分配给设备最坏情况的1.4秒,留下28.6秒最大等待时间用于L-SCAN。
[0134] 需要注意的一件事情是用于均匀随机工作负载的性能对于实时请求负载是不变的。事实证明这个曲线相对于实时数据速率是平的,并且其值匹配针对该工作流观察到的接近最佳值(在图5的虚线曲线的最右点),示范了CSched针对该设备上的工作负载获得接近最佳可实现性能。如所预期的,随着实时请求速率增加,具有顺序尽力请求流的总系统吞吐量降低,因为实时请求吸收可用资源中递增的比例。然而,所述两个曲线,虚线和点划线曲线,其分别地表示在有实时保证和没有实时保证的情况下的接近最佳性能,示范了CSched还获得用于其他高工作负载的几乎最佳吞吐量。
[0135] 为了比较任何或所有磁盘调度MRIS,不允许在设备处的并发请求,见图5,其示出了在各种配置中示范了用于具有单个未解决请求的系统的相对性能的曲线(即,曲线504和508)对比示范了用于具有六十个并发请求的系统的相对性能的曲线(即,曲线502和506)。
由于工作负载使用4KB请求,我们能够容易地从图5中的底部实线曲线508上的最左边数据点看到的是,在相同的硬件配置上,EDF应当期望变成小于0.8MB/s,而CSched变成约22MB/s。类似地,不容纳并发请求的任何磁盘调度MRIS上的上边界仅约为1.4MB/s,由于其为表示设备前面的大效率队列的曲线508上的最右边数据点的值。
[0136] 可以从虚线曲线中得到关于1MB请求流的类似观察结果。EDF将提供约100MB/s(该曲线上最左边点),同时不允许并发请求的最有效实时磁盘调度器能够可能达到约140MB/s(该曲线上最右边点)。CSched通常在具有相同请求流的硬件上达到约 420MB/s(点划曲线上最右边点)。如所描述的,由于请求流变得更有顺序性且更少的随机性,所以损害了标准CSCAN调度器的公平性。
[0137] 图10是对L-CSCAN 队列需要的示范的曲线图1000,并且示出了当尽力请求流是顺序的时候错过它们的截止期限的实时请求的部分。当实时请求速率低的时候,尽力请求可以保持进入CSCAN队列足够快以促使每个扫描花费过度的时间量在尽力顺序请求上,在其可以继续到在其他地址服务实时请求缺乏之前。
[0138] 图11是类似于图9的曲线图1100,除此代替具有平滑实时请求流之外,其具有突发请求流,在实时请求每次具有五秒的突发尺寸情况下。如果针对测试硬件上的4KB随机实时请求最坏情况预期吞吐量预调时间是0.39ms(预期=0.00039),并且期望的实时数据速率是XMB/s,则在给定突发中的请求的数目是σ等同物5/0.00039,其等于12,820个请求或53MB的缓存,并且针对4KB请求的突发到达间隔速率是(4096·σ)/(1,000,000·X)。如果X = 1MB/s,则突发到达间隔速率是52.5秒。该性能类似于图9中所示的。因此,性能对于实时请求流中的突发性是相对不变的,只要系统被设计成处理突发。
[0139] 使用最坏情况吞吐量预调时间数据来完成上述运算,其可以基本上不同于预期的吞吐量预调时间(见图7)。具有最坏情况吞吐量预调时间的吞吐量约为10.5MB/s,而具有成千的排队请求的系统的预期的吞吐量是大约22MB/s。随着λ减少,初始松弛时间的将被分配给最坏情况设备服务时间的部分越大,剩下的分配给L-CSCAN队列的等待时间越少。这转而意味着减少了L-CSCAN队列的尺寸,消极地影响了性能。如果实时工作负载是非常突发的,即,σ是大的,则仍然花费来自L-CSCAN队列的其他时间。这可以通过估计SCAN-EDF队列通过允许实时请求来先发制人地从LCSCAN队列移除最近添加的非实时请求并且将它们推送到保持堆栈上的方式来处理。一旦在L-CSCAN队列上开放了空间,在保持堆栈上的请求就将被重新添加到L-CSCAN队列,从而基本上保护非实时请求之中的公平性。
[0140] 另一方法是如果最小初始松弛时间值(λ)是动态参数,其可以响应于与预期未来相关联的信号重新确定,改变到不同优先级访问请求的工作负载。在该方法中,重新确定的最小初始松弛时间值(λ)是基于从特征化存储器设备获得的至少一个值的并且响应于与预期未来相关联的信号的工作负载改变到不同优先级访问请求的工作负载而确定的。
[0141] 图12是示范了根据示例的使用图1中所示的调度装置100如何根据递增的最小初始松弛时间值(λ)改变吞吐量的曲线图1200。如在图12中所示,吞吐量随着λ变化,其中9.5MB/s的恒定实时数据速率,σ=0s,而δ=1.4s。因为当λ增加{1.5, . . . , 30}s时,这还意味着ζ增加{0.1, . . . , 28.6}s。性能随着ζ增加而改善并且从而 L-CSCAN队列尺寸增加,其与以上图4所示的结果一致,即递增的调度队列的尺寸改善了磁盘性能。
[0142] 图13是曲线图1300,其示范了根据示例的在使用图1中所示的调度装置100在等同条件下调度具有尽力请求的实时请求时在随机或顺序请求条件下改善的吞吐量的曲线图;图13类似于图9,除了之外其还示出了调度器、CDS-SCAN表现。CDS-SCAN在Staelin等人的Real-time disk scheduling MRIS allowing concurrent I/O requests. Tech. Rep. HPL-2009-244, 惠普实验室,2009年10月中进一步详细地描述,其通过引用被整体地并入本文中。当不存在实时请求时,注意CSched和CDS-SCAN的性能如何类似,但另一方面,相比之下,关于随机尽力请求流的CDS-SCAN的性能下降而 CSChed的性能保持恒定。还注意针对顺序尽力流下降比当实时速率增加时CSched的下降更陡峭的CDS-SCAN的性能如何。
[0143] 7. CRS装置和CRS方法
[0144] 本文公开用于管理并发请求调度(CRS)的方法和装置。首先参考图1,示出了根据示例的CRS系统100的简化框图。本领域技术人员显而易见的是,图1的图表示广义图示,并且在不背离CRS系统100的范围的情况下,可以增加其他部件或可以移除、修改或重新布置现有部件。
[0145] CRS系统100被描绘为包括CRS装置102、处理器120、输入装置130、输出接口140以及数据存储118。处理器120将实现和/或执行CRS装置102。因此,例如,CRS系统100可以包括计算设备并且CRS装置102可以包括集成的和/或计算设备的扩展硬件设备。作为另一示例,CRS装置102可以包括计算机可读存储设备(未示出),在其上存储处理器120将执行的计算机程序
[0146] 如图1中进一步所示出的那样,处理器120将从输入接口130接收输入。输入接口130可以包括,例如,通过其用户可以访问数据(诸如,访问请求、对象、MRIS、应用等)的用户接口,所述数据被存储在数据存储118中。此外,或替换地,用户可以将输入接口130对接将数据供应到数据存储118中和/或更新先前存储在数据存储118中的数据。输入接口130还可以包括通过其用户可以访问存储在数据存储118中的数据的版本的用户接口,当通过输出接口140被输出时。
[0147] 根据示例,CRS装置102将处理存储在存储器(诸如,数据存储118)中的访问请求。访问请求在包括具有实时优先级、以及较低优先级请求(诸如尽力请求和/或背景请求)的访问请求的不同的优先级访问请求的工作负载中。根据示例,数据存储118可以包括非易失性字节可寻址存储器,诸如,电池支持的随机存取存储器(RAM)、相位改变RAM(PCRAM)、忆阻器等。此外或替换地,数据存储118可以包括从外部可移除媒体读取或向其写入的设备,诸如可移除PCRAM设备。虽然数据存储118已经被描绘为在数据结构管理系统100的内部或附连到其上,但是应当理解的是数据存储118可以与CRS系统100远程地定位。在该示例中,CRS系统100可以通过网络连接(因特网等)访问数据存储118。
[0148] 如在图1中进一步示出的,CRS装置102包括用户接口模块104、设备特征化模块106、工作负载特征化模块108、CRS处理模块110以及更新模块112。模块104-112可以包括MRIS代码模块、硬件模块或MRIS和硬件模块的组合。因此,在一个示例中,模块104-112可以包括电路部件。在另一示例中,模块104-112可以包括存储在计算机可读存储介质上的代码,所述代码将由处理器120来执行。同样地,在一个示例中,CRS装置102包括硬件设备(诸如,计算机、服务器、电路等)。在另一示例中,CRS装置102包括计算机可读存储介质,在其上存储用于执行模块104-112的功能的MRIS代码。所述CRS系统102执行的各种功能在下面更详细地讨论。
[0149] 根据示例,CRS装置102将实现CRS方法。可以实现CRS装置102的模块104-112的各种方式相对于图14和15更详细地描述,其描绘了用来执行CRS的方法1400和1500的流程图。本领域技术人员显而易见的是方法1400和1500表示广义图示,并且在不背离方法1400和
1500的范围的情况下,可以增加其他块或可以移除、修改或重新布置现有块。
[0150] 方法1400和1500的描述是特定参考图1中所描绘的CRS装置102以及图2中描绘的CRS架构图200作出的。然而,应当理解的是在不背离方法1400和1500的范围的情况下,方法1400和1500可以在装置中实现,所述装置不同于CRS装置102以及CRS架构200。
[0151] 在块1402处,首先参考图14中的方法1400,利用设备特征化模块106来执行存储器设备的特征化。在一个示例中,存储器设备的特征化包括确定并发访问请求的平衡数(N)。在块1502处,参考图15中的方法1500,存储器设备的特征化包括确定并发访问请求的平衡数(N)、最坏情况设备服务等待时间值(δ)以及最大最坏情况吞吐量预调时间(1/IOPS)值(Τ)。与Τ相关联的值是可以至少与用于读取/写入、随机/顺序以及请求尺寸的值并且可选地其他值相关联的函数。
[0152] 可以响应于与块1402的存储器设备相关联的访问请求的工作负载来实现块1404。首先参考图14中的方法1400,利用工作负载特征化模块108来执行工作负载的特征化。在一个示例中,可以相对于特征化工作负载来特征化任何工作负载特征化参数。在块1504处,参考图15中的方法1500,工作负载的特征化可以包括确定最小初始松弛时间值(λ)、突发性值(σ)以及最坏情况队列延迟值(ζ)。根据该示例,ζ本质上不是工作负载的特性,而是相对于CRS架构200得出的参数。
[0153] 在图14中,块1406可以响应于可以接收具有访问请求存储位置值的实时访问请求的信号或指示加以实现。在图15中,块1506还可以响应于可以接收具有访问请求存储位置值的实时访问请求的信号或指示加以实现。利用CRS更新模块112可以实现块1406和1506。
[0154] 在图14中,块1408可以响应于可以接收具有访问请求存储位置值的实时访问请求加以实现。在图15中,块1508还可以响应于接收具有访问请求存储位置值的实时访问请求加以实现。块1408和1508包括处理实时访问请求,基于访问请求存储位置值以及特征化存储器设备以及在先前块中的工作负载来获得的参数。利用CRS处理模块110可以实现块1408和1508。
[0155] 在图中阐述的一些或所有操作可以被包含为在任何期望计算机可读存储介质中的实用程序、程序或子程序。此外,可以通过计算机程序来体现该操作,其可以以各种形式存在,活动的或不活动的。例如,它们可以作为(一个或多个)MRIS程序而存在,所述MRIS程序由采用源代码、目标代码、可执行代码或其他格式的程序指令组成。上述中的任何一个都可以被体现在计算机可读存储介质上,其包括存储设备。
[0156] 计算机可读存储媒体的示例包括传统计算机系统RAM、ROM、EPROM、EEPROM以及磁或光学磁盘或磁带。前述的具体示例包括程序在CD ROM或经由因特网下载的分布。因此将被理解的是,任何能够执行上述功能的电子设备都可以执行以上枚举的那些功能。
[0157] 8. 用于CRS方法、装置、计算机可读介质的平台
[0158] 现转到图16,示出了计算设备1600,其可以被作为用于实现或执行在图14和15中描述的方法的平台,或与所述方法相关联的代码而采用。应当理解的是,计算设备1600的图示是广义图示并且该计算设备1600可以包括附加附件并且所述部件中的一些可以被移除和/或修改,在不背离计算设备1600的范围的情况下。
[0159] 设备1600包括处理器1602,诸如中央处理单元;显示设备1604,诸如监视器;网络接口1608,诸如局域网(LAN),无线802.11x LAN、3G移动WAN或WiMax WAN;以及计算机可读介质510。这些部件中的每一个都可以被操作地耦合到总线1612。例如,总线1612可以是 EISA、PCI、USB、FireWire、NuBus或 PDS。
[0160] 计算机可读介质1610可是任何合适的介质,其参与将指令提供给处理器1602以便执行。例如,计算机可读介质1610可是非易失性介质,诸如光学或磁盘;易失性媒体,诸如存储器;以及传输媒体,诸如同轴电缆、线以及光缆。传输媒体还可以采用声学、光或无线电频率波的形式。计算机可读介质1610还可以存储其他MRIS应用,包括文字处理器、浏览器、电子邮件、即时消息、媒体播放器以及电话MRIS。
[0161] 计算机可读介质1610还可以存储操作系统1614,诸如Mac OS、MS Windows、Unix或Linux;网络应用1616;以及管理应用的数据结构1618。操作系统1614可以是多用户、多处理、多任务、多读取、实时的等等。操作系统1614还可以执行基本任务,所述任务诸如从输入设备(诸如键盘或小键盘)中识别输入;发送输出到显示器1604以及设计工具1606;保持文件的追踪以及介质1610上的目录;控制外围设备,诸如磁盘驱动器打印机、图像捕获设备;以及管理总线1612上的业务。网络应用1616包括用于建立和维持网络连接的各种部件,诸如用于实现包括TCP/IP、HTTP、以太网、USB以及FireWire的通信协议的MRIS。
[0162] 管理应用1618的数据结构提供用于如上所述的非易失性存储器的用于构建/更新CRS架构(诸如CRS架构200)的各种MRIS部件。在特定示例中,通过应用1618执行的一些或所有过程可以被集成到操作系统1614中。在特定示例中,可以至少部分地以数字电路、计算机硬件、固件、MRIS或以其任何组合来实现所述过程。
[0163] 虽然遍及全部的瞬间公开具体地描述,但是代表性示例在大范围的应用上具有实用性,并且上述讨论不是刻意的并且不应当解释为限制。仅通过举例说明的方式来阐明本文所使用的术语、描述及图并且不意味限制。本领域的技术人员认识到的是在该示例的精神和范围内可能的许多变化。虽然已经参考示例描述了各种示例,但是本领域的技术人员能够在不背离在以下权利要求及其等同物中描述的示例的范围的情况下对所述示例作出各种修改。
相关专利内容
标题 发布/更新时间 阅读量
短资源请求 2020-05-11 466
请求式定位 2020-05-11 977
请求式定位 2020-05-11 901
并发请求调度 2020-05-12 848
上行链路请求 2020-05-12 785
触发多载波请求 2020-05-13 114
触发多载波请求 2020-05-13 675
二级调度请求 2020-05-12 256
变更请求表注释 2020-05-12 475
一种请求开关 2020-05-11 400
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈