CN110413206B - 存储***中的操作控制方法、设备和计算机程序产品 - Google Patents
存储***中的操作控制方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110413206B CN110413206B CN201810400279.0A CN201810400279A CN110413206B CN 110413206 B CN110413206 B CN 110413206B CN 201810400279 A CN201810400279 A CN 201810400279A CN 110413206 B CN110413206 B CN 110413206B
- Authority
- CN
- China
- Prior art keywords
- target
- performance parameter
- response
- threads
- response time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施例提供了存储***中的操作控制方法、设备和计算机程序产品。该方法包括获取存储***的性能参数。性能参数与存储***的访问响应时间和资源使用率中的至少一项相关联。该方法还包括获取目标性能参数。目标性能参数指示性能参数的期望值。该方法还包括响应于性能参数超过第一阈值,基于性能参数和目标性能参数来确定调度参数。调度参数用于控制存储***中的后台操作的执行。通过本公开的实施例,实现了对存储***中的后台操作的有效控制,从而提高资源利用效率和输入/输出性能。
Description
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及存储***中的操作控制方法、设备和计算机程序产品。
背景技术
在目前的存储***中,存在诸如快照删除和磁盘碎片整理之类的不同类型的后台操作。当执行这些后台操作时,例如当删除大量快照时,输入/输出(I/O)响应时间和中央处理器(CPU)使用率有很大的尖峰(spike)。一般而言,如何使后台操作不占用较多***资源,并根据可用的***资源来动态调整后台操作的***资源使用情况,以及如何使后台操作执行更快更顺畅,是一个很大的挑战。
对后台操作进行节制(throttling)本身是容易的,但同时保持I/O响应时间在适当的范围内并且不施加不合理的延迟是困难的。在存储***的当前实现中,针对后台操作的节制已经进行了大量的努力,但I/O响应时间和CPU使用率仍然有很大的尖峰和跳跃。由于存在诸多节制参数和因素,现有方法无法适应变化的工作负载和复杂的应用环境。对于响应时间敏感的应用(如银行交易等)而言,大响应时间尖峰是无法接受的。
发明内容
本公开的实施例提供了一种存储***中的操作控制的方案。
在本公开的第一方面中,提供了一种存储***中的操作控制方法。该方法包括获取存储***的性能参数。性能参数与存储***的访问响应时间和资源使用率中的至少一项相关联。该方法还包括获取目标性能参数。目标性能参数指示性能参数的期望值。该方法还包括响应于性能参数超过第一阈值,基于性能参数和目标性能参数来确定调度参数。调度参数用于控制存储***中的后台操作的执行。
在本公开的第二方面中,提供了一种存储***中的操作控制设备。该设备包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作。动作包括获取存储***的性能参数。性能参数与存储***的访问响应时间和资源使用率中的至少一项相关联。动作还包括获取目标性能参数。目标性能参数指示性能参数的期望值。动作还包括响应于性能参数超过第一阈值,基于性能参数和目标性能参数来确定调度参数。调度参数用于控制存储***中的后台操作的执行。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例可以在其中被实现的存储***的示意图;
图2示出了根据本公开的实施例的操作控制过程的流程图;
图3示出了根据本公开的一些实施例的控制因子与访问响应时间之间的对应关系(correspondence)的示意图;
图4示出了根据本公开的一些实施例的确定睡眠时间的过程的流程图;
图5示出了根据本公开的一些实施例的睡眠时间与访问响应时间之间的对应关系的示意图;
图6A和图6B是示出了输入/输出响应时间和CPU使用率随时间的变化的曲线图;
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为了便于解释,本文的一些实施例将以快照删除为例来介绍存储***中的操作控制方法或设备。然而,如本领域技术人员可以理解的,本公开的实施例绝不限于被应用于快照删除,而是可以被应用于存在类似问题的任何后台操作。
图1示出了本公开的实施例可以在其中被实现的示例存储***100的示意图。然而,应当注意的是,图1所示的存储***100的结构仅仅是示例性的,而无意进行任何限制。在一些实施例中,本公开的实施例可以应用于其他适当结构的存储***,而图1中所示的存储***100的特定结构并非是必须的。
在图1的示例存储***100中,上层文件***(未示出)处理输入/输出(I/O)请求,并以I/O请求分组的形式发送到下层映射逻辑单元(MLU)。通用块文件***(CBFS)应用程序接口(API)层120和121通过公共文件***(CFS)层130和/或CBFS层140执行与文件存储有关的操作。另外,存储***100中的底层数据存储由存储资源池150支持。存储资源池150可以包括多个存储设备,例如图中所示的磁盘151-1到151-N。
在如图1所示的示例存储***100中,存在各种后台操作,例如快照删除、磁盘碎片整理等。动态地调节用于后台操作的***资源,即对后台操作进行节制是必要的。下面以快照删除为例来说明目前在示例存储***100中是如何节制后台操作的。
在当前的实现中,首先基于存储***的五个因素来确定针对快照删除的节制等级,然后基于该节制等级来确定用于执行快照删除的线程数目和睡眠时间。这五个因素分别是DataLog百分比、UFSLog百分比、存储资源池空闲百分比、I/O摄入百分比和读I/O数百分比。DataLog百分比指示数据日志的使用百分比(也与文件数据高速缓存(FDC)使用百分比结合);UFSLog百分比指示针对文件***的文件日志的使用百分比(也与***日志结合);存储资源池空闲百分比指示文件***被创建在其中的资源池的空闲空间的百分比;I/O摄入百分比指示当前时间的I/O负载与一周前相同时间的I/O负载之比;读I/O数百分比指示每轮leafIB截断(truncate)(快照删除的一个操作)之间的读I/O数与截断操作开始前的I/O数之比。
利用以上五个因素的函数来确定节制等级。该函数例如可以表示为:
TLevel=f(DataLog百分比,UFSLog百分比,存储资源池空闲百分比,I/O摄入百分比,读I/O数百分比)
其中,TLevel表示节制等级。
然后,基于所确定的节制等级,通过预定义的函数gTruncateThrottleThread[TLevel]来获得对应于特定节制等级的线程数目,并且通过预定义的函数gTruncateThrottleSleepTime[TLevel]来获得对应于特定节制等级的睡眠时间。该线程数目和睡眠时间用于控制下一轮Leaf截断操作的线程数目和间隔时间。
本申请的发明人意识到现有的实现方案存在若干问题。由于节制参数和因素太多,其仅在一些工作负载下起作用,并且***性能中存在太多尖峰。在一些工作负载下,这种节制方法甚至几乎不起作用,这导致了延时的爆发(burst)。另外,用于确定节制等级TLevel的公式过于简单,并且不能适应实际应用的工作负载。当前的节制方案是粗粒度(coarse-grained)的调整,不能进行精细调节,这导致较大的性能波动。此外,在当前的实现方案中,节制计算过于频繁,从而浪费了较多CPU周期。
根据本公开的实施例,提供一种存储***中的操作控制方案,其能够至少部分地解决现有技术中的问题。这种新的自适应方案可以用于节制存储***中的诸如快照删除的后台操作。在这种方案中,可以根据***I/O工作负载来动态地调节后台操作速度,并且为了控制后台操作的执行而引入了针对性能参数(诸如,访问响应时间和资源使用率)的目标。在一些实施例中,如果***I/O吞吐量超过限制,则后台操作可以睡眠可变的时间(而非固定的时间),并且睡眠时间可以通过I/O响应时间和目标响应时间来确定。例如,当I/O吞吐量相对低(对应于I/O响应时间较小)时,后台操作可以占有相对较多的***资源;当I/O吞吐量相对高(对应于I/O响应时间较大)时,后台操作可以占有相对较少的***资源。在一些实施例中,***的性能参数越远离目标性能参数,对后台操作的节制程度越大,以减少诸如访问响应时间和资源使用率的性能中的尖峰。利用本公开的自适应方法,可以在可变的工作负载情况下有效且平稳地控制后台操作的执行,同时减少I/O响应时间和CPU使用率中的尖峰。
以下将参考附图2-7更详细地描述本公开的实施例。图2示出了根据本公开的实施例的操作控制过程200的流程图。过程200可以在图1所示的示例存储***100中实现,也可以在任何具有类似问题的存储***中实现。
在210,获取存储***的性能参数,该性能参数与存储***的访问响应时间和资源使用率中的至少一项相关联。在一些实施例中,该性能参数可以是存储***的I/O响应时间。在一些实施例中,该性能参数可以是存储***的CPU使用率。
在220,获取目标性能参数,该目标性能参数指示性能参数的期望值。在上述I/O响应时间的示例中,目标性能参数可以是针对I/O响应时间的期望值,诸如8ms。在上述CPU使用率的示例中,目标性能参数可以是针对CPU使用率的期望值,诸如50%。
在一些实施例中,目标性能参数可以是预先确定的。例如,目标性能参数可以由***开发人员预先设置,或者可以由***的用户设置。在一些实施例中,可以根据其他参数确定目标性能参数(参见下文)。
应当注意,上述步骤210和220可以以不同的顺序执行,即,可以先获取目标性能参数,再获取当前存储***的性能参数。本公开的范围在此方面不受限制。
在230,确定在210处获取的性能参数是否超过第一阈值。第一阈值可以用于标识诸如快照删除的后台操作是否需要被节制。如果性能参数没有超过第一阈值,则指示当前***的工作负载相对较低,因此不需要对后台操作进行节制,即,后台操作可以以正常模式操作。在上述I/O响应时间的示例中,第一阈值可以例如是2ms。在上述CPU使用率的示例中,第一阈值可以例如是20%。
如果在230处确定所获取的性能参数超过第一阈值,则过程进行到240。在240,基于在210处获得的性能参数和在220处获取的目标性能参数,确定调度参数。该调度参数用于控制存储***中的后台操作的执行。例如,调度参数可以是睡眠时间,其指示后台操作的执行之间的间隔。替代地或附加地,调度参数可以是线程数目,其指示执行后台操作时所采用的线程的数目。仅作为示例,当根据本发明的实施例应用于节制快照删除时,调度参数可以是每轮截断操作之间的间隔。
应当注意,可以每隔特定时间间隔重复上述过程200,以使得后台操作基于***实时性能而动态被控制(例如,被节制)。该特定时间间隔可以例如是1000ms、100ms、10ms或1ms。在一些实施例中,该特定时间间隔可以是200ms。以200ms的时间间隔重复上述过程200,将不会产生过长延时,同时也不会给***资源使用(诸如CPU的使用)带来过多开支。
参考回到步骤220。在一些实施例中,可以获取第二阈值,然后可以基于第一阈值和第二阈值来确定目标性能参数。该第二阈值可以指示性能参数的上限值。在上述I/O响应时间的示例中,第二阈值可以例如是20ms。在上述CPU使用率的示例中,第二阈值可以例如是99%。
在某些实施例中,可以基于第一阈值和第二阈值来计算目标性能参数。仅仅作为示例,可以将第一阈值和第二阈值的平均用作目标性能参数。在上述I/O响应时间的示例中,如果第一阈值是2ms且第二阈值是20ms,则目标性能参数可以是11ms。在某些实施例中,还可以基于预先定义的映射规则来确定目标性能参数。
在一些实施例中,步骤240中,可以通过引入控制因子作为中间变量来确定调度参数。例如,可以基于在步骤210处获取的性能参数、在步骤220处获取的目标性能参数和第一阈值(或者第二阈值),确定针对调度参数的控制因子。该控制因子与后台操作被调节的程度相关。然后可以基于所确定的控制因子来确定调度参数。以下将参考图3来描述这一过程。
为了便于说明,下面将以访问响应时间作为性能参数的示例来描述如何确定调度参数。然而,本领域技术人员应当理解,本公开中的性能参数不限于访问响应时间。图3示出了根据本公开的一些实施例的控制因子与访问响应时间之间的对应关系的示意图。
在图3中,横轴和纵轴分别表示访问响应时间和控制因子。如上文所指出的,如果访问响应时间小于第一阈值,则不需要对后台操作进行节制。存储***中的后台操作相应地以正常模式操作(如图3中的“自由运行”所指示的)。如果访问响应时间超过第一阈值,则需要调整针对后台操作的调度参数,以使得后台操作被平稳节制(如图3中的“平稳节制”所指示的)。
图3中的目标值标识期望访问响应时间能够平衡在该值附近。基于此,首先确定存储***当前的访问响应时间与目标值(即,目标响应时间)的偏离。当所获取的访问响应时间大于/小于目标值时,控制因子将减小/增加,以使访问响应时间回到目标值。在一些实施例中,与目标值相对应的控制因子的值可以为1;对于大于目标值的访问响应时间,对应的控制因子的值可以小于1;对于小于目标值的访问响应时间,对应的控制因子的值可以大于1。例如,在图3的示例中,与第一阈值相对应的控制因子的值为2,以及与第二阈值相对应的控制因子的值为0。
在一些实施例中,可以例如通过函数来计算不同的访问响应时间所对应的控制因子的值。在存储***中,访问响应时间通常由于工作负载的变化而快速改变。作为示例,可以通过如式(1)的三次多项式(3rd order polynomial)函数来确定控制因子:
其中rt表示在如图2的步骤210中获取的访问响应时间,tp表示目标值,lt表示第二阈值。式(1)所指示的函数满足以下条件:
条件(1):f(fr)=2,其中fr表示第一阈值;
条件(2):f(tp)=1;
条件(3):f(lt)=0;
条件(4):df/d(rt)≤0;以及
条件(5):rt越接近tp,|df/d(rt)|越小,反之亦然。
条件(4)意味着在这样的实施例中存在反馈控制。条件(5)意味着越偏离目标值,对后台操作调整的程度变化就越大。因此,以这种方式确定的控制因子可以反映出存储***中的后台操作需要被调节的程度。本领域技术人员应当理解,式(1)仅是一个示例,还可以通过其他具有类似特性的函数来确定控制因子。
在确定控制因子之后,可以基于所确定的控制因子来确定调度参数。例如,可以基于控制因子和基准调度参数来确定调度参数,例如调度参数可以是基准调度参数除以控制因子所得到的值。作为一个示例,当调度参数是针对后台操作的睡眠时间时,可以通过式(2)来确定睡眠时间:
其中st表示睡眠时间,IOBW表示所统计的用于输入/输出的带宽,TBW表示期望的带宽,以及CF表示所确定的控制因子。应当理解,式(2)仅是一个示例,并且在根据本公开的实施例中还可以使用其他的手段来基于控制因子确定调度参数。
在以上描述的具体实施例中,利用式(1)和式(2)来确定睡眠时间。由于三次多项式函数的特性,这样确定的睡眠时间能够基于访问响应时间而有效地被调节,以使得后台操作的执行被平稳地节制。
上文描述了基于性能参数、目标性能参数和第二阈值来确定控制因子的示例。替代地或附加地,在一些实施例中,也可以类似地基于性能参数、目标性能参数和第一阈值来确定控制因子。例如,在上述性能参数为访问响应时间的示例中,可以通过如式(3)的函数来确定控制因子:
其中rt表示在如图2的步骤210中获取的访问响应时间,tp表示目标值,fr表示第一阈值。
以上描述了通过控制因子来确定调度参数的实施例。然而,应当理解,控制因子不是必需的。在一些实施例中,可以利用预先确定的对应关系来基于性能参数和目标性能参数确定调度参数。以下参考图4和图5来描述这样的实施例。图4示出了根据本公开的一些实施例的确定睡眠时间的过程400的流程图。过程400可以被认为是过程200中的步骤230和240的一个具体实施例。图5示出了根据本公开的一些实施例的睡眠时间与访问响应时间之间的对应关系的示意图。
作为示例,图4示出了基于所获取的访问响应时间确定用于控制后台操作的睡眠时间的过程400的流程图。在410,确定所获取的访问响应时间(例如,在210处所获取的访问响应时间)是否超过阈值响应时间。如果访问响应时间超过阈值响应时间,则可以将所获取的访问响应时间与目标响应时间进行比较,目标响应时间指示***的访问响应时间的期望值。过程进行到420。在420,确定响应时间是否大于目标响应时间。
如果访问响应时间大于目标响应时间,则过程进行到430。在430,将睡眠时间设置为大于基准睡眠时间。基准睡眠时间指示与目标响应时间相对应的睡眠时间。参考图5,其中TB表示基准睡眠时间。如果所获取的访问响应时间的值为图5中的RA,则可以将睡眠时间设置为大于TB的值TA。
参考回到图4,如果访问响应时间不大于目标响应时间,则过程进行到440。在440,确定响应时间是否等于目标响应时间。如果响应时间等于目标响应时间,则过程进行到450。在450,将睡眠时间设置为基准睡眠时间。例如,可以将睡眠时间设置为图5中的TB。
如果在440确定访问响应时间不等于目标响应时间,则过程进行到460。在460,将睡眠时间设置为小于基准睡眠时间。例如,如果所获取的访问响应时间的值为图5中的RC,则可以将睡眠时间设置为小于TB的值TC。
应当注意,图5中所示的访问响应时间与睡眠时间之间的对应关系仅是示例性的。这种对应关系例如可以通过诸如式(1)和式(2)的函数计算得到。本领域技术人员应当理解,访问响应时间与睡眠时间之间的对应关系并不受限于图5。
在这样的实施例中,当访问响应时间大于目标响应时间时,用于控制后台操作的睡眠时间大于基准睡眠时间,这意味着后台操作的执行间隔增加并且后台操作在较大程度上被节制,从而促进***的访问响应时间回到目标响应时间。当访问响应时间小于目标响应时间时,用于控制后台操作的睡眠时间小于基准睡眠时间,这意味着对后台操作的节制程度较小。以这样的方式,后台操作的执行能够有效地被调节,而不对存储***的访问性能造成过大影响并且减小访问响应时间中的尖峰。
表1和图6示出了在相同的测试环境下使用本公开的自适应方法和现有技术对快照删除进行节制的比较结果。在该测试中,基于访问响应时间来确定用于控制快照删除的执行的睡眠时间。从表1中可以看出,与现有技术相比,在本公开的方法中,平均响应时间和平均CPU使用率均降低。
表1.现有技术与本公开的方法的比较
平均响应时间(ms) | 平均CPU使用(%) | |
现有技术 | 3.82 | 85.50 |
本公开的方法 | 3.65 | 82.10 |
图6A和图6B分别示出了在测试中输入/输出响应时间和CPU使用率随时间的变化。在图6A中,曲线601、602、603和604分别指示利用现有技术、不进行节制、基线(baseline)条件和利用本公开方法的情况下的输入/输出响应时间随时间的变化。在图6B中,曲线611、612、613和614分别指示利用现有技术、不进行节制、基线(baseline)条件和利用本公开方法的情况下的CPU使用率随时间的变化。
从图6A和图6B中可以看出,曲线604和曲线614中的尖峰明显小于其他曲线。与其他方法相比,利用本公开的自适应方法可以使输入/输出响应时间曲线和CPU使用率曲线更平滑,并且保持总截断时间相同。这种特性使得存储***能够适应变化的工作负载和复杂的应用环境。
以上描述了基于访问响应时间来确定睡眠时间的实施例。在一些实施例中,也可以基于资源使用率(诸如CPU使用率)来确定用于控制后台操作的睡眠时间。该过程与参考图4和图5描述过程类似。首先,确定所获取的资源使用率是否超过阈值使用率。如果所获取的资源使用率超过阈值使用率,则将其与目标使用率进行比较。如果所获取的资源使用率大于目标使用率,则将睡眠时间设置为大于基准睡眠时间;如果所获取的资源使用率等于目标使用率,则将睡眠时间设置为基准睡眠时间;如果所获取的资源使用率小于目标使用率,则将睡眠时间设置为小于基准睡眠时间。
在这样的实施例中,能够基于资源使用率来对后台操作的执行进行节制。以这样的方式,后台操作的执行能够有效地被调节,而不对存储***的资源使用造成过大影响。
在一些实施例中,还可以基于访问响应时间来确定用于后台操作的线程数目。线程数目指示执行后台操作时所采用的线程的数目。首先,确定所获取的访问响应时间是否超过阈值响应时间。如果所获取的访问响应时间超过阈值响应时间,则将其与目标响应时间进行比较。如果所获取的访问响应时间大于目标响应时间,则将线程数目设置为小于基准线程数目;如果所获取的访问响应时间等于目标响应时间,则将线程数目设置为基准线程数目;如果访问响应时间小于目标响应时间,则将线程数目设置为大于基准线程数目。基准线程数目指示与目标响应时间相对应的线程数目。
在这样的实施例中,当访问响应时间大于目标响应时间时,用于后台操作的线程数目小于基准线程数目,这意味着用于后台操作的资源减少并且后台操作在较大程度上被节制,从而促进***的访问响应时间回到目标响应时间。当访问响应时间小于目标响应时间时,用于后台操作的线程数目大于基准线程数目,这意味着对后台操作的节制程度较小。以这样的方式,后台操作的执行能够有效地被调节,而不对存储***的访问性能造成过大影响并且减小访问响应时间中的尖峰。
在一些实施例中,还可以基于资源使用率来确定用于后台操作的线程数目。首先,确定所获取的资源使用率是否超过阈值使用率。如果所获取的资源使用率超过阈值使用率,则将其与目标使用率进行比较。如果所获取的资源使用率大于目标使用率,则将线程数目设置为小于基准线程数目;如果所获取的资源使用率等于目标使用率,则将线程数目设置为基准线程数目;如果所获取的资源使用率小于目标使用率,则将线程数目设置为大于基准线程数目。
在这样的实施例中,能够基于资源使用率来对后台操作的执行进行节制。以这样的方式,后台操作的执行能够有效地被调节,而不对存储***的资源使用造成过大影响。
图7示出了可以用来实现本公开的实施例的示例设备700的示意性框图。图1中所示的示例存储***100可以被实现在设备700中。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如过程200和过程400中的任一个。例如,在一些实施例中,过程200和过程400中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程200和过程400中的任一过程的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和过程400中的任一个。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (17)
1.一种存储***中的操作控制方法,包括:
获取所述存储***的性能参数,所述性能参数与所述存储***的访问响应时间和资源使用率中的至少一项相关联;
获取目标性能参数,所述目标性能参数指示所述性能参数的期望值;以及
响应于所述性能参数超过第一阈值,基于所述性能参数和所述目标性能参数来确定调度参数,所述调度参数用于控制所述存储***中的后台操作的执行。
2.根据权利要求1所述的方法,其中获取所述目标性能参数包括:
获取第二阈值,其中所述第二阈值指示所述性能参数的上限值;以及
基于所述第一阈值和所述第二阈值,确定所述目标性能参数。
3.根据权利要求1所述的方法,其中确定所述调度参数包括:
基于所述性能参数、所述目标性能参数和所述第一阈值,确定针对所述调度参数的控制因子,所述控制因子与所述后台操作被调节的程度有关;以及
基于所述控制因子,确定所述调度参数。
4.根据权利要求1所述的方法,其中确定所述调度参数包括:
获取第二阈值,所述第二阈值指示所述性能参数的上限值;
基于所述性能参数、所述目标性能参数和所述第二阈值,确定针对所述调度参数的控制因子,所述控制因子与所述后台操作被调节的程度有关;以及
基于所述控制因子,确定所述调度参数。
5.根据权利要求1所述的方法,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述访问响应时间超过阈值响应时间,
将所述访问响应时间与目标响应时间进行比较,
响应于所述访问响应时间大于所述目标响应时间,将睡眠时间设置为大于基准睡眠时间;
响应于所述访问响应时间等于所述目标响应时间,将所述睡眠时间设置为所述基准睡眠时间;以及
响应于所述访问响应时间小于所述目标响应时间,将所述睡眠时间设置为小于所述基准睡眠时间,
其中所述睡眠时间指示所述后台操作的执行之间的间隔,并且所述基准睡眠时间指示与所述目标响应时间相对应的睡眠时间。
6.根据权利要求1所述的方法,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述资源使用率超过阈值使用率,
将所述资源使用率与目标使用率进行比较,
响应于所述资源使用率大于所述目标使用率,将睡眠时间设置为大于基准睡眠时间;
响应于所述资源使用率等于所述目标使用率,将所述睡眠时间设置为所述基准睡眠时间;以及
响应于所述资源使用率小于所述目标使用率,将所述睡眠时间设置为小于所述基准睡眠时间,
其中所述睡眠时间指示所述后台操作的执行之间的间隔,并且所述基准睡眠时间指示与目标响应时间相对应的睡眠时间。
7.根据权利要求1所述的方法,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述访问响应时间超过阈值响应时间,
将所述访问响应时间与目标响应时间进行比较,
响应于所述访问响应时间大于所述目标响应时间,将线程数目设置为小于基准线程数目;
响应于所述访问响应时间等于所述目标响应时间,将所述线程数目设置为所述基准线程数目;以及
响应于所述访问响应时间小于所述目标响应时间,将所述线程数目设置为大于所述基准线程数目,
其中所述线程数目指示执行所述后台操作时所采用的线程的数目,并且所述基准线程数目指示与所述目标响应时间相对应的线程数目。
8.根据权利要求1所述的方法,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述资源使用率超过阈值使用率,
将所述资源使用率与目标使用率进行比较,
响应于所述资源使用率大于所述目标使用率,将线程数目设置为小于基准线程数目;
响应于所述资源使用率等于所述目标使用率,将所述线程数目设置为所述基准线程数目;以及
响应于所述资源使用率小于所述目标使用率,将所述线程数目设置为大于所述基准线程数目,
其中所述线程数目指示执行所述后台操作时所采用的线程的数目,并且所述基准线程数目指示与目标响应时间相对应的线程数目。
9.一种存储***中的操作控制设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
获取所述存储***的性能参数,所述性能参数与所述存储***的访问响应时间和资源使用率中的至少一项相关联;
获取目标性能参数,所述目标性能参数指示所述性能参数的期望值;以及
响应于所述性能参数超过第一阈值,基于所述性能参数和所述目标性能参数来确定调度参数,所述调度参数用于控制所述存储***中的后台操作的执行。
10.根据权利要求9所述的设备,其中获取所述目标性能参数包括:
获取第二阈值,其中所述第二阈值指示所述性能参数的上限值;以及
基于所述第一阈值和所述第二阈值,确定所述目标性能参数。
11.根据权利要求9所述的设备,其中确定所述调度参数包括:
基于所述性能参数、所述目标性能参数和所述第一阈值,确定针对所述调度参数的控制因子,所述控制因子与所述后台操作被调节的程度有关;以及
基于所述控制因子,确定所述调度参数。
12.根据权利要求9所述的设备,其中确定所述调度参数包括:
获取第二阈值,所述第二阈值指示所述性能参数的上限值;
基于所述性能参数、所述目标性能参数和所述第二阈值,确定针对所述调度参数的控制因子,所述控制因子与所述后台操作被调节的程度有关;以及
基于所述控制因子,确定所述调度参数。
13.根据权利要求9所述的设备,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述访问响应时间超过阈值响应时间,
将所述访问响应时间与目标响应时间进行比较,
响应于所述访问响应时间大于所述目标响应时间,将睡眠时间设置为大于基准睡眠时间;
响应于所述访问响应时间等于所述目标响应时间,将所述睡眠时间设置为所述基准睡眠时间;以及
响应于所述访问响应时间小于所述目标响应时间,将所述睡眠时间设置为小于所述基准睡眠时间,
其中所述睡眠时间指示所述后台操作的执行之间的间隔,并且所述基准睡眠时间指示与所述目标响应时间相对应的睡眠时间。
14.根据权利要求9所述的设备,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述资源使用率超过阈值使用率,
将所述资源使用率与目标使用率进行比较,
响应于所述资源使用率大于所述目标使用率,将睡眠时间设置为大于基准睡眠时间;
响应于所述资源使用率等于所述目标使用率,将所述睡眠时间设置为所述基准睡眠时间;以及
响应于所述资源使用率小于所述目标使用率,将所述睡眠时间设置为小于所述基准睡眠时间,
其中所述睡眠时间指示所述后台操作的执行之间的间隔,并且所述基准睡眠时间指示与目标响应时间相对应的睡眠时间。
15.根据权利要求9所述的设备,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述访问响应时间超过阈值响应时间,
将所述访问响应时间与目标响应时间进行比较,
响应于所述访问响应时间大于所述目标响应时间,将线程数目设置为小于基准线程数目;
响应于所述访问响应时间等于所述目标响应时间,将所述线程数目设置为所述基准线程数目;以及
响应于所述访问响应时间小于所述目标响应时间,将所述线程数目设置为大于所述基准线程数目,
其中所述线程数目指示执行所述后台操作时所采用的线程的数目,并且所述基准线程数目指示与所述目标响应时间相对应的线程数目。
16.根据权利要求9所述的设备,其中响应于所述性能参数超过所述第一阈值基于所述性能参数和所述目标性能参数来确定所述调度参数包括:
响应于所述资源使用率超过阈值使用率,
将所述资源使用率与目标使用率进行比较,
响应于所述资源使用率大于所述目标使用率,将线程数目设置为小于基准线程数目;
响应于所述资源使用率等于所述目标使用率,将所述线程数目设置为所述基准线程数目;以及
响应于所述资源使用率小于所述目标使用率,将所述线程数目设置为大于所述基准线程数目,
其中所述线程数目指示执行所述后台操作时所采用的线程的数目,并且所述基准线程数目指示与目标响应时间相对应的线程数目。
17.一种非暂态计算机可读介质,所述计算机可读介质存储机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810400279.0A CN110413206B (zh) | 2018-04-28 | 2018-04-28 | 存储***中的操作控制方法、设备和计算机程序产品 |
US16/227,708 US10747472B2 (en) | 2018-04-28 | 2018-12-20 | Method, device, and computer program product for operation control in storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810400279.0A CN110413206B (zh) | 2018-04-28 | 2018-04-28 | 存储***中的操作控制方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413206A CN110413206A (zh) | 2019-11-05 |
CN110413206B true CN110413206B (zh) | 2023-05-30 |
Family
ID=68292562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810400279.0A Active CN110413206B (zh) | 2018-04-28 | 2018-04-28 | 存储***中的操作控制方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10747472B2 (zh) |
CN (1) | CN110413206B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726006B (zh) | 2017-10-27 | 2023-06-06 | 伊姆西Ip控股有限责任公司 | 用于控制存储***的方法、装置和计算机存储介质 |
KR20220165980A (ko) * | 2021-06-09 | 2022-12-16 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
CN113760069B (zh) * | 2021-09-07 | 2023-09-05 | 北京百度网讯科技有限公司 | 温度控制的方法、设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681302A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器*** |
US7757214B1 (en) * | 2005-11-10 | 2010-07-13 | Symantec Operating Coporation | Automated concurrency configuration of multi-threaded programs |
WO2013101947A1 (en) * | 2011-12-27 | 2013-07-04 | Solidfire, Inc. | Proportional quality of service based on client usage and system metrics |
CN103282887A (zh) * | 2010-12-30 | 2013-09-04 | 桑迪士克科技股份有限公司 | 用于进行后台操作的控制器和方法 |
WO2014105829A2 (en) * | 2012-12-31 | 2014-07-03 | Sandisk Technologies Inc. | Method and system for asynchronous die operations in a non-volatile memory |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090280907A1 (en) * | 2008-04-30 | 2009-11-12 | Bally Gaming, Inc. | Server client network throttling system for download content |
JP5786641B2 (ja) * | 2011-10-25 | 2015-09-30 | 富士通株式会社 | 携帯端末装置の制御方法、制御プログラム及び携帯端末装置 |
US20130232310A1 (en) * | 2012-03-05 | 2013-09-05 | Nec Laboratories America, Inc. | Energy efficiency in a distributed storage system |
US10318495B2 (en) * | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9336133B2 (en) * | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9600337B2 (en) * | 2014-09-30 | 2017-03-21 | Nimble Storage, Inc. | Congestion avoidance in network storage device using dynamic weights |
US20160162215A1 (en) * | 2014-12-08 | 2016-06-09 | Sandisk Technologies Inc. | Meta plane operations for a storage device |
CN109726006B (zh) * | 2017-10-27 | 2023-06-06 | 伊姆西Ip控股有限责任公司 | 用于控制存储***的方法、装置和计算机存储介质 |
-
2018
- 2018-04-28 CN CN201810400279.0A patent/CN110413206B/zh active Active
- 2018-12-20 US US16/227,708 patent/US10747472B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7757214B1 (en) * | 2005-11-10 | 2010-07-13 | Symantec Operating Coporation | Automated concurrency configuration of multi-threaded programs |
CN101681302A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器*** |
CN103282887A (zh) * | 2010-12-30 | 2013-09-04 | 桑迪士克科技股份有限公司 | 用于进行后台操作的控制器和方法 |
WO2013101947A1 (en) * | 2011-12-27 | 2013-07-04 | Solidfire, Inc. | Proportional quality of service based on client usage and system metrics |
WO2014105829A2 (en) * | 2012-12-31 | 2014-07-03 | Sandisk Technologies Inc. | Method and system for asynchronous die operations in a non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
US10747472B2 (en) | 2020-08-18 |
US20190332326A1 (en) | 2019-10-31 |
CN110413206A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601512B2 (en) | System and method for throttling service requests having non-uniform workloads | |
US9419904B2 (en) | System and method for throttling service requests using work-based tokens | |
Balmau et al. | {SILK}: Preventing latency spikes in {Log-Structured} merge {Key-Value} stores | |
US10768823B2 (en) | Flow control for unaligned writes in network storage device | |
US10747451B2 (en) | Auto allocation of storage system resources to heterogeneous categories of resource consumer | |
US7694305B2 (en) | Method of controlling access to computing resource within shared computing environment | |
US8818989B2 (en) | Memory usage query governor | |
CN110413206B (zh) | 存储***中的操作控制方法、设备和计算机程序产品 | |
US9384205B1 (en) | Auto adaptive deduplication to cloud based storage | |
CN110018781B (zh) | 磁盘流控方法、装置以及电子设备 | |
CN107402863B (zh) | 一种用于通过日志***处理业务***的日志的方法与设备 | |
US9135064B2 (en) | Fine grained adaptive throttling of background processes | |
Chen et al. | Online Data Partitioning in Distributed Database Systems. | |
US20110179057A1 (en) | Database engine throttling | |
US11005776B2 (en) | Resource allocation using restore credits | |
CN106612329B (zh) | 一种缓存方法及装置 | |
CN109582460B (zh) | 一种Redis内存数据的淘汰方法和装置 | |
US9503353B1 (en) | Dynamic cross protocol tuner | |
US10965739B2 (en) | Time-based congestion discounting for I/O fairness control | |
CN115632948A (zh) | 应用于网卡的中断调控方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |