动态调整任务请求数的方法

文档序号:7974255阅读:131来源:国知局
专利名称:动态调整任务请求数的方法
技术领域
本发明涉及一种动态调整任务请求数的方法,特别涉及一种根据当时暂 存的任务请求的存取数据量之和,动态调整任务请求数的方法。
背景技术
网络小型计算机系统接口 (Internet Small Computer System Interface; iSCSI)协议(RFC3720)是利用网络(Internet)传输SCSI指令进行读写储 存设备的协议。使用网络小型计算机系统接口协议互相通讯的两个端点分别 被称为请求端(Initiator)和目的端(Target)。请求端用于发出包含SCSI 指令的任务请求至目的端,目的端接收任务请求并存取储存设备,并于SCSI 指令完成后传送存取结果回请求端。在网络小型计算机系统接口协议中,请 求端可同时向目的端发送多个任务,目的端可以将接收到的多个任务暂存于 队列(Queue)中等待处理,提高网络的使用效率以及请求端与目的端的执 行效率。
但如果请求端没有很好地控制同时传送至目的端的任务请求的总数,目 的端则会因为接收过多的任务请求而资源耗尽,在这个时候,如果请求端继 续传送任务请求至目的端,则会造成任务请求遗失或系统异常,因此请求端 必须等待暂存于目的端的任务请求减少到有资源的时候,才能再向目的端传 送任务请求,这样的过程就是"流量控制"。也就是说,网络小型计算机系 统接口协议的流量控制就是为了控制网络小型计算机系统接口协议中的请 求端向目的端传送任务请求的频率,也就是请求端在一定时间内允许向目的 端传送任务请求的数量。
事实上,网络小型计算机系统接口协议的流量控制受制于目的端处理任 务请求的速度,而处理任务请求的速度受很多因素的影响。这些因素主要包 括内存、网络频宽、处理器(Processor)的运算能力、存取储存媒体的效 能等几个方面。内存越大,可以暂存的任务请求越多;网络频宽越大,则单位时间内传送回请求端的数据量就越大;处理器运算能力越高,则任务请求 的处理速度可以提升;存取储存媒体的效能越高,则任务请求在储存媒体上 读写的时间就越短。不过目前因为储存媒体的存取速度无法跟上内存的容 量、处理器的运算能力、以及网络的频宽大小,所以影响流量控制最大的因 素在于储存媒体的存取效能。由于储存媒体的存取速度在一段特定时间内为 一定值,所以影响存取效能稳定性的关键在于暂存的存取数据量的多少。虽 然如此,但以往的流量控制却仅仅针对内存、处理器以及频宽进行控制。显 然,以往的流量控制并没有控制真正造成流量瓶颈的因素,也就是储存媒体 的效能。因此,如何能提供一种根据储存媒体效能调整可再接收的任务请求 数的功能,成为待解决的问题。

发明内容
鉴于以上的问题,本发明的目的在于提供一种动态调整任务请求数的方 法,目的端根据暂存的当前存取数据量之和、动态调整的允许存取数据量, 以及平均存取数据量,计算出可传送任务请求数,并将可传送任务请求数传 送给请求端,使得请求端同时传送的任务请求数不超过可传送任务请求数。 这样,便可间接通过储存媒体效能来控制流量,以解决现有技术所存在的未 以存取效能控制流量的问题。
为达上述目的,本发明所提供的方法包括有下列步骤请求端传送至少 一第一任务请求至目的端;目的端暂存第一任务请求;目的端依据被暂存的 所有任务请求所对应的存取数据量计算平均存取数据量及当前存取数据量; 目的端依据平均存取数据量计算允许存取数据量;目的端计算允许存取数据 量与当前存取数据量的差值;目的端设定存取数据量与当前存取数据量的差 值与平均存取数据量的商为可传送任务数;目的端传送可传送任务数至请求 端;请求端传送不超过可传送任务数的第二任务请求至目的端。
在上述方法中,该平均存取数据量为暂存于该目的端的所有任务请求所 对应的各该存取数据量的平均值。
在上述方法中,计算该平均存取数据量的步骤还包含下列步骤设定一 最大统计数;及当暂存于该目的端的所有任务请求的总数大于该最大统计数 时,以最晚暂存于该目的端的最大统计数个任务请求,计算该平均存取数据
在上述方法中,该当前存取数据量为暂存于该目的端的所有任务请求的 各该存取数据量之和。
在上述方法中,该计算该允许存取数据量的步骤包含下列步骤设定一 修改步长;及设定该允许存取数据量为该修改步长乘以该平均存取数据量。
在上述方法中,还包含下列步骤该目的端在暂存的所有任务请求中之 一完成后,计算一累积处理任务数;及判断该累积处理任务数与一预定阈值 相同时,增加该允许存取数据量,使该可传送任务数被重新计算。
在上述方法中,该增加该允许存取数据量的步骤是设定该允许数据存 取量为该允许存取数据量加上该平均存取数据量。
在上述方法中,该增加该允许存取数据量的步骤还包含下列步骤设定 一最大存取数据量;判断该允许存取数据量小于该最大存取数据量时,增加 该允许存取数据量;及判断该允许存取数据量大于该最大存取数据量时,设 定该允许存取数据量为该最大存取数据量。
在上述方法中,还包含接收一删除任务请求,并减少该允许存取数据量, 使该可传送任务数被重新计算的步骤。
在上述方法中,该减少该允许存取数据量的步骤还包含设定一修改步 长;及设定该允许数据存取量为该允许存取数据量减去该修改步长再乘以该 平均存取数据量。
在上述方法中,该减少该允许存取数据量的步骤还包含下列步骤设定 一修改步长及一最小存取数据量;及判断该允许数据存取量大于该最小存取 数据量时,减少该允许存取数据量。
下面将结合附图详细说明有关本发明的详细特征与实例,其内容足以使 任何本领域普通技术人员了解本发明的技术内容并据以实施,且根据本说明 书的内容及附图,任何本领域普通技术人员都能容易地理解本发明的目的及 优点。


图1A是根据本发明的动态调整任务请求数的方法流程图1B是根据本发明的动态调整任务请求数的方法流程图1C是根据本发明的计算平均存取数据量的方法流程图;
图1D是根据本发明的增加允许存取数据量的方法流程图;
图1E是根据本发明的减少允许存取数据量的方法流程图;
其中,附图标记说明如下
步骤IIO请求端传送任务请求
步骤120目的端计算当前存取数据量
步骤130目的端计算平均存取数据量
步骤131设定最大统计数
步骤132任务请求总数是否大于最大统计数
步骤133选择计算的任务请求
步骤134计算平均存取数据量
步骤140目的端计算允许存取数据量
步骤141设定修改步长及最大存取数据量
步骤142计算累积处理任务数
步骤143累积处理任务数是否与预定阈值相同
步骤144增加允许存取数据量
步骤145允许存取数据量是否大于最大存取数据量
步骤146设定允许存取数据量为最大存取数据量
步骤147设定修改步长及最小存取数据量
步骤148允许存取数据量是否大于最小存取数据量
步骤149减少允许存取数据量
步骤150目的端设定可传送任务数
步骤160目的端传送可传送任务数
步骤170请求端接收可传送任务数
步骤190目的端完成任务请求
具体实施例方式
以下结合一个实施例来说明本发明的运作系统与方法,请参照图1A与 图1B所示的根据本发明的动态调整任务请求数的方法流程图。 — 由于网络小型计算机系统接口协议定义传送任务请求中,需要记录该次任务请求的存取数据量,因此本发明可以在任务请求被接收后,轻易地取得 接收的任务请求的存取数据量。
在本实施例中,目的端正在处理写入12 Mbytes的第一任务请求,另外 有二个任务请求被搁置,分别为读取5 Mbytes的第二任务请求、写入 1Mbytes的第三任务请求,所以目的端的当前存取数据量为上述三个任务请 求所要处理的存取数据量的总和,也就是12+5+1=18 (Mbytes);平均存取 数据量为第一、第二、及第三任务请求所要处理的存取数据量的平均值,也 就是(12+5+1)/3=6 (MBytes);若目的端中的修改步长被设定为5,以修改 步长x平均存取数据量可计算出允许存取数据量为5x6=30 (MBytes)。因 此,目的端此时传送给请求端的可传送任务数为(30-18)/6=2,也就是说,尽 管目的端尚未将第一至第三任务请求的处理结果传回给请求端,但请求端此 时还可以对目的端发出两个任务请求。
事实上,目的端并非直接将可传送任务数传送给请求端,而是使用类似 滑动窗口 (slidingwindow)的方法,以一个最大任务号码以及一个次一任务 号码相减的值来表示可传送任务数。也就是说,若请求端传送给目的端第一 任务请求的任务号码为100,则目的端传送给请求端的次一任务号码为101, 而因为目的端当时仅允许请求端发出两个任务请求,因此目的端传送给请求 端的最大任务号码为102,这样,请求端便只能对目的端发出任务号码为101 与102的两个请求。
此时,当请求端传送写入6 Mbytes的第四任务请求至目的端(步骤110), 目的端在接收到第四任务请求后,会计算可传送任务数。由于可传送任务数 须由平均存取数据量、当前存取数据量、及允许存取数据量计算得出,因此 需要先行计算平均存取数据量、当前存取数据量、及允许存取数据量。由于 有新的任务请求产生,目的端中当前的任务请求数改变为四个,所以当前存 取数据量改变为12+5+1+6=24 (MBytes)(步骤120);平均存取数据量改 变为(12+5+l+6)AN6(MBytes)(步骤130);允许存取数据量改变为5 x 6=30 (MBytes)(步骤140)。在计算出平均存取数据量、当前存取数据量、及 允许存取数据量后,可使用(允许存取数据量-当前存取数据量)/平均存取数据 量的计算式计算可传送任务数为(30-24)/6=1 (步骤150);于是目的端会将 可传送任'务数传回给请求端(步骤160),请求端在接收到可传送任务数 (步骤170)后,下次传送的任务请求将不超过一个(步骤110),也就是说, 在目的端将第一任务请求完成后,请求端可以发出一个任务请求至目的端。 其中,由于计算当前存取数据量(步骤120)与计算平均数据量(步骤130) 的步骤没有相互关系,两步骤的先后顺序可以互换。
当第一任务请求完成后(步骤190),目的端开始处理第二任务请求, 此时目的端会再次计算可传送任务数,如图1B所示。在计算可传送任务数 之前,需要先计算平均存取数据量、当前存取数据量、及允许存取数据量。 平均存取数据量为任务请求的平均值,因为没有新的任务请求产生,因此平 均存取数据量不改变,其值为6 (MBytes)(步骤130);因为第一任务请 求已完成,所以当前存取数据量改变为第二、第三及第四任务请求的存取数 据量的和,其值为5+1+6=12 (MBytes)(步骤120);由于平均存取数据量 没有改变,因此经由修改步长x平均存取数据量计算后得出的允许存取数据 量也不会改变,值依然为30 (MBytes)(步骤140)。所以可传送任务数经 计算后得出为(30-12)/6=3 (步骤150),于是目的端会将可传送任务数传回 给请求端(步骤160),请求端在接收到可传送任务数(步骤170)后,下 次将可以传送至多三个任务请求至目的端(步骤IIO)。
如此,本发明即可以解决现有技术中所存在的未以储存媒体的存取效能 作为流量控制依据的问题。
在上述计算平均存取数据量(步骤130)过程中,为了更准确地得到平 均存取数据量,可以使用一个最大统计数来计算平均存取数据量,使得平均 存取数据量不再以所有接收过的任务请求来计算,而是由被目的端接收的时 间最接近计算时间的最大统计数个任务请求来计算。如图1C所示,若目的 端设定最大统计数为3 (步骤131),则当第四任务请求被目的端接收之后, 因为暂存在目的端的任务请求共有四个,大于最大统计数(步骤132),因 此目的端会选出最接近计算时间的三个任务请求为第二、第三及第四任务请 求(步骤133),平均存取数据量将使用第二、第三、第四任务请求来计算 平均存取数据量,即平均存取数据量为(5+1+6)/3=4 (MBytes)(步骤134), 因此允许存取数据量改变为5x4=20 (MBytes)(步骤140),所以目的端 可接收的任务请求数变为两个((20-12)/4=2)(步骤150)。 "
而后,目的端陆续将第二、第三、第四任务请求处理完毕,也随一之不断调整可接收任务请求数并接收新的任务请求。如果在这过程中,目的端与请 求端互动良好,使得请求端所传送至目的端的任务请求均未发生超时,则在 处理过一预定数量的任务请求后,目的端会在计算允许存取数据量(步骤
140)的步骤中,增加允许存取数据量。如图1D所示,当目的端设定的预定 阈值为4 (步骤141),则目的端在将第一、第二、第三、第四任务请求处 理正常完成后,分别将累积处理任务数加一 (步骤142),使得累积处理任 务数为4,因此,在目的端处理完第四任务请求后,累积处理任务数与预定 阈值相同(步骤143),因此目的端会增加允许存取数据量,使得暂存在目 的端的任务增加(步骤144)。 一般而言,目的端每次会将允许存取数据量 增加一个平均存取数据量。当然,为了避免目的端累积太多任务要处理,因 此需要另外设定一个最大存取数据量(步骤141),若允许存取数据量在增 加后未超过最大存取数据量时(步骤145),仍然可以增加允许存取数据量, 但允许存取数据量仅可增加到最大存取数据量(步骤146)。上述目的端更 改允许存取数据量的时机(预定阈值,也就是完成多少任务请求后才能更改 允许存取数据量的门槛)可任意设定,但在经过不断的测试之后可以设定出 一个建议值。在本实施例中该建议值为修改步长,也就是说,在上述的步骤 中,目的端的预定阈值设定为5,而更改允许存取数据量的时机也是目的端 正常完成5个任务请求后。本实施例中设定预定阈值为修改步长的原因在于, 修改步长是一个适中的值,大于这个值时允许存取数据量上升太慢,在很多 任务请求被正常处理的情况下仍然无法及时提升这个值;而小于这个值时允 许存取数据量上升太快,可能造成系统性能不稳定。在本发明中,建议这个 预定阈值要大于或等于修改步长,否则允许存取数据量将变化太快而不利于 iSCSI效能的稳定,而流量控制的目的正在于稳定储存媒体效能。
若目的端与请求端的互动并不良好,在目的端处理第一任务请求的过程 中,请求端送出的第二请求发生超时,使得请求端送出将第二任务删除的第 五任务请求(步骤110),目的端在接收到第五任务请求后,会重新计算当 前存取数据量为第三及第四任务请求的存取数据量的和为1+6=7 (MBytes) (步骤120),而平均存取数据量及允许存取数据量不会改变(步骤130, 步骤140),因此目的端可接收的任务请求数变为三个((20-7)/4=3.25j (步 骤150)。
为了避免不断的发生超时而造成任务不断的重新传送,目的端会减少允
许存取数据量。如图1E所示,在接收到删除第二任务的第五任务请求时(步 骤110),目的端会再重新计算出允许存取数据量(步骤140)的步骤中, 将允许存取数据量减少一个预定值(步骤149),其中预定值通常会设定为 修改步长乘以平均存取数据量的积。不过,即使随意设定也不会影响本发明 的运行,因为随着任务请求的产生与完成,允许存取数据量将会被逐渐调整 到最适合运行的值。同样的,为了避免允许存取数据量过小,而致使请求端 完全无法传送请求至目的端,目的端也会设定一个最小存取数据量(步骤 147),若允许存取数据量小于最小存取数据量时(步骤148),则设定允许 存取数据量为最小存取数据量,其中最小存取数据量通常设定为平均存取数 据量的两倍,以避免出现当允许存取数据量再次减少时,可传送任务数为零 的状况。
再者,根据本发明的动态调整任务请求数的方法,可实现于硬件、软件 或硬件与软件的组合中,亦可在计算机系统中以集中方式实现或以不同组件 散布于若干互连的计算机系统这样的分散方式实现。
虽然本发明的最佳实施例如上,但上述描述并非用以限定本发明,任何 本领域普通技术人员,在不脱离本发明的精神和范围内所进行地变化和改 进,均落入本发明的保护范围,因此本发明的保护范围须以本说明书所附的 权利要求书的限定为准。
权利要求
1.一种动态调整任务请求数的方法,应用于网络小型计算机系统接口协议,该方法包含下列步骤一请求端传送至少一第一任务请求至一目的端;该目的端暂存该第一任务请求;该目的端根据暂存的所有任务请求所对应的各存取数据量,计算一平均存取数据量及一当前存取数据量;该目的端根据该平均存取数据量计算一允许存取数据量;该目的端计算该允许存取数据量与该当前存取数据量的差值;该目的端根据该差值与该平均存取数据量,设定一可传送任务数;该目的端传送该可传送任务数至该请求端;及该请求端传送不超过该可传送任务数的第二任务请求至该目的端。
2. 如权利要求1所述的方法,其中该平均存取数据量为暂存于该目的端 的所有任务请求所对应的各该存取数据量的平均值。
3. 如权利要求1所述的方法,其中计算该平均存取数据量的步骤还包含 下列步骤-设定一最大统计数;及当暂存于该目的端的所有任务请求的总数大于该最大统计数时,以最晚 暂存于该目的端的最大统计数个任务请求,计算该平均存取数据量。
4. 如权利要求1所述的方法,其中该当前存取数据量为暂存于该目的端 的所有任务请求的各该存取数据量之和。
5. 如权利要求1所述的方法,其中该计算该允许存取数据量的步骤包含 下列步骤设定一修改步长;及设定该允许存取数据量为该修改步长乘以该平均存取数据量。
6. 如权利要求1所述的方法,其中该方法还包含下列步骤 该目的端在暂存的所有任务请求中之一完成后,计算一累积处理任务数;及判断该累积处理任务数与一预定阈值相同时,增加该允许存取数据量, 使该可传送任务数被重新计算。
7. 如权利要求6所述的方法,其中该增加该允许存取数据量的步骤是 设定该允许数据存取量为该允许存取数据量加上该平均存取数据量。
8. 如权利要求6所述的方法,其中该增加该允许存取数据量的步骤还包 含下列步骤设定一最大存取数据量;判断该允许存取数据量小于该最大存取数据量时,增加该允许存取数据判断该允许存取数据量大于该最大存取数据量时,设定该允许存取数据 量为该最大存取数据量。
9. 如权利要求1所述的方法,其中该方法还包含接收一删除任务请求, 并减少该允许存取数据量,使该可传送任务数被重新计算的步骤。
10. 如权利要求9所述的方法,其中该减少该允许存取数据量的步骤还 包含-设定一修改步长;及设定该允许数据存取量为该允许存取数据量减去该修改步长乘以该平 均存取数据量之积。
11. 如权利要求9所述的方法,其中该减少该允许存取数据量的步骤还 包含下列步骤-设定一修改步长及一最小存取数据量;及判断该允许数据存取量大于该最小存取数据量时,减少该允许存取数据
全文摘要
一种动态调整任务请求数的方法,应用于网络小型计算机系统接口(Internet Small Computer System Interface;iSCSI)协议,当目的端(Target)接收到请求端(Initiator)所传送的任务请求或目的端完成任务请求时,依据目的端中的平均存取数据量、当前存取数据量、及允许存取数据量三个参数计算出可传送任务数并传回请求端,使请求端同时传送的任务请求不会超过可传送任务数,由此实现流量控制。其中允许存取数据量由目的端与请求端间的互动动态调整获得。
文档编号H04L29/06GK101202741SQ20061016468
公开日2008年6月18日 申请日期2006年12月14日 优先权日2006年12月14日
发明者刘宏亮, 刘文涵, 鹤 张, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1