CN110099012B - 一种流量控制方法、系统及电子设备和存储介质 - Google Patents

一种流量控制方法、系统及电子设备和存储介质 Download PDF

Info

Publication number
CN110099012B
CN110099012B CN201910380620.5A CN201910380620A CN110099012B CN 110099012 B CN110099012 B CN 110099012B CN 201910380620 A CN201910380620 A CN 201910380620A CN 110099012 B CN110099012 B CN 110099012B
Authority
CN
China
Prior art keywords
issuing
issued
different priorities
requests
request
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
Application number
CN201910380620.5A
Other languages
English (en)
Other versions
CN110099012A (zh
Inventor
韩子衿
郑炎亭
吴大立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201910380620.5A priority Critical patent/CN110099012B/zh
Publication of CN110099012A publication Critical patent/CN110099012A/zh
Application granted granted Critical
Publication of CN110099012B publication Critical patent/CN110099012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种流量控制方法、系统及一种电子设备和计算机可读存储介质,该方法包括:确定每个IO请求的IO类型,并根据IO类型为每个IO请求设置优先级;其中,IO类型包括业务类型和非业务类型,业务类型的IO请求的优先级高于非业务类型的IO请求的优先级;判断所有业务类型的IO请求的平均时延是否大于预设值;若是,则根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;若否,则按照每个IO请求的到达时间的顺序进行下发。本申请提供的流量控制方法,在低负载情况下使得业务类型的IO请求的执行更加流畅,在高负载情况下保证存储系统的安全性。

Description

一种流量控制方法、系统及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种流量控制方法、系统及一种电子设备和一种计算机可读存储介质。
背景技术
在分布式存储系统中,IO(中文全称:输入/输出,英文全称:Input/Output)请求可以划分为业务类型的IO请求和非业务类型的IO请求,业务类型的IO请求为与存储系统的功能相关的请求,非业务类型的IO请求如重建IO、修复IO、平衡IO等。
在现有技术中,通过事务的优先级进行调度。具体的,业务类型的IO请求的优先级高于非业务类型的IO请求。在低负载情况下,高优先级事务(即业务类型的IO请求)较少,低优先级事务(即非业务类型的IO请求)得到调度,由于非业务类型的IO请求耗费磁盘,导致业务类型的IO请求的执行不够流畅,用户体验不好。在高负载情况下,由于高优先级事务多,低优先级事务得不到调度,导致存储系统长时间处于风险状态。
因此,如何在低负载情况下使得业务类型的IO请求的执行更加流畅,在高负载情况下保证存储系统的安全性是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种流量控制方法、系统及一种电子设备和一种计算机可读存储介质,在低负载情况下使得业务类型的IO请求的执行更加流畅,在高负载情况下保证存储系统的安全性。
为实现上述目的,本申请提供了一种流量控制方法,包括:
确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
判断所有所述业务类型的IO请求的平均时延是否大于预设值;
若是,则根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
若否,则按照每个所述IO请求的到达时间的顺序进行下发。
其中,所述根据调度策略确定属于不同优先级的IO请求的下发数量,包括:
根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量;
和/或,根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量。
其中,所述根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量,包括:
将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的下发数量。
其中,所述根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量,包括:
将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的下发数量。
其中,所述根据调度策略确定属于不同优先级的IO请求的下发数量,包括:
判断所有所述优先级对应的下发上限IO数量之和是否大于所有所述优先级对应的已下发IO数量之和;
若是,则将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的第一候选下发数量;
将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的第二候选下发数量;
将所述第一候选下发数量与所述第二候选下发数量中的最小值确定为所述属于不同优先级的IO请求的下发数量。
其中,所述根据所述下发数量下发所述属于不同优先级的IO请求之后,还包括:
判断所有所述优先级对应的当前下发上限IO数量之和是否大于所有所述优先级对应的当前已下发IO数量之和;
若是,则将所述当前下发上限IO数量之和与所述当前已下发IO数量之和的差值作为额外下发数量;
按照当前未下发IO请求的优先级由高至低分配所述额外下发数量。
其中,当所述平均时延大于所述预设值时,还包括:
对所有所述IO请求进行冲突检测,得到具有重叠区域的冲突IO请求;
按照每个所述冲突IO请求的到达时间的顺序下发所有所述冲突IO请求。
为实现上述目的,本申请提供了一种流量控制系统,包括:
设置模块,用于确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
判断模块,用于判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则启动第一下发模块的工作流程;若否,则启动第二下发模块的工作流程;
所述第一下发模块,用于根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
所述第二下发模块,用于按照每个所述IO请求的到达时间的顺序进行下发。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述流量控制方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述流量控制方法的步骤。
通过以上方案可知,本申请提供的一种流量控制方法,包括:确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;若否,则按照每个所述IO请求的到达时间的顺序进行下发。
本申请提供的流量控制方法,针对低负载情况和高负载情况采用不同的调度方式。当业务类型的IO请求的平均时延不大于预设值时,即在低负载情况下按照各IO请求的到达时间的顺序进行下发,非业务类型的IO可以最大限度的利用资源进行下发。当业务类型的IO请求的平均时延大于预设值时,即在高负载情况下根据调度策略对各优先级的IO请求进行下发,非业务类型的IO也可以持续获得部分资源下发,在保证用户正常业务有效运行的前提下,防止因数据重建等非业务无法执行而增加数据风险的问题。本申请还公开了一种流量控制系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种流量控制方法的流程图;
图2为图1中步骤S103的细化流程图;
图3为图2中步骤S35之后的流程图;
图4为根据一示例性实施例示出的另一种流量控制方法的流程图;
图5为根据一示例性实施例示出的一种流量控制系统的结构图;
图6为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种流量控制方法,在低负载情况下使得业务类型的IO请求的执行更加流畅,在高负载情况下保证存储系统的安全性。
参见图1,根据一示例性实施例示出的一种流量控制方法的流程图,如图1所示,包括:
S101:确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
本实施可以应用于分布式存储系统,执行主体可以为系统中的处理器,当接收到上层的IO请求后,首先根据各IO请求的流量区分其IO类型,并根据IO类型设置对应的IO优先级,该优先级用于在高负载情况下进行调度。
此处的IO类型包括业务类型和非业务类型,业务类型的IO请求为与存储系统的功能相关的请求,非业务类型的IO请求如重建IO、修复IO、平衡IO等。本实施例只需区分业务类型和非业务类型即可,当然对于每个类型的IO请求也可以进行再详细的划分,在此不进行具体限定,例如业务类型的IO请求可以包括写请求、读请求等,非业务类型的IO请求也可以包括写请求、读请求等。业务类型的IO请求的优先级高于非业务类型的IO请求的优先级,对于同一类型的IO请求,优先级可以相同也可以不同,例如写请求的优先级高于读请求等,在此同样不进行具体限定。
S102:判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则进入S103;若否,则进入S104;
在本步骤中,根据业务类型的IO请求的平均时延确定系统的当前负载情况。当平均时延大于预设值时,说明此时系统处于高负载状态,进入S103,否则说明系统处于低负载状态,进入S104。此处不对预设值进行具体限定,优选为5ms。
S103:根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
在本步骤中,系统处于高负载状态,会对各优先级类别的IO请求进行流量控制,即流控生效。具体的,根据调度策略确定属于不同优先级的IO请求的下发数量,当系统中仅区分业务类型和非业务类型的IO请求的优先级时,即分别确定业务类型和非业务类型的IO请求的下发数量,并根据该下发数量下发各优先级的IO请求。
可以理解的是,本实施例不对具体的调度策略进行限定,作为一种优选实施方式,可以根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量;和/或,根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量。
也就是说,不同优先级的IO请求下发数量的影响因素可以为该优先级对应的缓存队列的IO数量,也可以为该优先级对应的下发上限IO数量和已下发IO数量,还可以包括上述三者。具体的,每个优先级的IO请求下发数量可以小于或等于该优先级对应的缓存队列的IO数量,也可以为该优先级对应的下发上限IO数量与已下发IO数量的差值。还可以将上述两者的最小值作为每个优先级的IO请求下发数量,此种方案将在下一实施例进行详细介绍。
可见,在系统处于高负载状态,各优先级的IO请求均得到相应数量的下发,即非业务类型的IO也可以持续获得部分资源下发,在保证用户正常业务有效运行的前提下,防止因数据重建等非业务无法执行而增加数据风险的问题。
S104:按照每个所述IO请求的到达时间的顺序进行下发。
在本步骤中,系统处于低负载状态,直接将IO下发给下层,按照每个所述IO请求的到达时间的顺序进行响应,非业务类型的IO可以最大限度的利用资源进行下发。
本申请实施例提供的流量控制方法,针对低负载情况和高负载情况采用不同的调度方式。当业务类型的IO请求的平均时延不大于预设值时,即在低负载情况下按照各IO请求的到达时间的顺序进行下发,非业务类型的IO可以最大限度的利用资源进行下发。当业务类型的IO请求的平均时延大于预设值时,即在高负载情况下根据调度策略对各优先级的IO请求进行下发,非业务类型的IO也可以持续获得部分资源下发,在保证用户正常业务有效运行的前提下,防止因数据重建等非业务无法执行而增加数据风险的问题。
下面介绍一种优选的根据调度策略确定下发数量的方法,即如图2所示,上一实施例的步骤S103可以包括:
S31:判断所有所述优先级对应的下发上限IO数量之和是否大于所有所述优先级对应的已下发IO数量之和;若是,则进入S32;
在本实施例中,每个优先级均具体其对应的缓存队列,每个优先级均对应三个参数:下发上限IO数量、已下发IO数量和缓存队列的IO数量。为各优先级的IO请求设置下发上限IO数量可以限制各优先级的IOPS(中文全称:每秒进行读写操作的次数,英文全称:Input/Output Operations Per Second),避免各优先级的IO请求无限制的抢占资源。系统整体的下发上限为所有优先级的下发上限IO数量之和,系统整体的已下发IO数量为所有优先级的已下发IO数量之和。
若系统整体的下发上限大于系统整体的已下发IO数量,说明仍可以调度下发IO,进入S32。可用于调度下发的IO数量为系统整体的下发上限与系统整体的已下发IO数量的差,根据两轮策略来确定各优先级类别下发IO数量,否则说明当前下发IO过多,本次不再调度下发IO。
S32:将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的第一候选下发数量;
S33:将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的第二候选下发数量;
S34:将所述第一候选下发数量与所述第二候选下发数量中的最小值确定为所述属于不同优先级的IO请求的下发数量;
在本实施例的调度策略中,各优先级尽可能达到自身的下发上限。对于各优先级的IO请求,若已下发IO数已达到下发上限IO数,则不再对该优先级的IO请求分配下发数量,即下发数量为0,避免该优先级的IO请求过多从而抢占资源。否则,计算下发上限IO数与已下发IO数的差值,将该差值与缓存队列的IO数量中的最小值作为下发数量。
S35:根据所述下发数量下发所述属于不同优先级的IO请求;
确定下发数量后,根据该下发数量下发各优先级的IO请求。作为一种优选实施方式,在上述过程之后,还可以进行IO请求的二次下发,即如图3所示,在步骤S35之后,还包括:
S36:判断所有所述优先级对应的当前下发上限IO数量之和是否大于所有所述优先级对应的当前已下发IO数量之和;若是,则进入S37;
S37:将所述当前下发上限IO数量之和与所述当前已下发IO数量之和的差值作为额外下发数量;
S38:按照当前未下发IO请求的优先级由高至低分配所述额外下发数量。
在经过步骤S34的下发过程后,若系统整体的下发上限仍大于系统整体的已下发IO数量,说明可以进行第二次下发IO,此时的额外下发数量为各优先级类别对应的当前下发上限IO数量之和与当前已下发IO数量之和的差值,按照优先级的顺序分配额外下发数量,即优先为高优先级的IO请求分配下发数量。
下面对上述的调度策略进行举例说明,假设高优先级和低优先级的下发上限IO数分别为70、30,已下发IO数分别为60、15,缓存队列的IO数量分别为20、10。
第一次下发IO,高优先级的IO请求下发数量为min(20,70-60)=10,低优先级的IO请求下发数量为min(10,30-15)=10。此时,高优先级和低优先级的已下发IO数分别为70、25,额外下发数量为5,可以进行第二次下发IO。按优先级先后分配,高优先级的IO请求获得剩余5个IO下发名额。
可见,经过调度策略后,高优先级的IO请求下发总数量为15,低优先级的IO请求下发总数量为10。
本申请实施例公开了一种流量控制方法,相对于上述实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图4,根据一示例性实施例示出的另一种流量控制方法的流程图,如图4所示,包括:
S301:确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
S302:判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则进入S303;若否,则进入S306;
S303:对所有所述IO请求进行冲突检测,得到具有重叠区域的冲突IO请求;
S304:按照每个所述冲突IO请求的到达时间的顺序下发所有所述冲突IO请求。
在本实施例中,当系统处于高负载状态下时,没有按照各IO请求的到达顺序进行响应,因此为了保障IO的时序性,需要对各IO请求进行冲突检测。
例如,存在A1、A2的两个写请求,同时需要写文件A区域,A1先于A2下发。由于A1为非业务类型的写请求,A2为业务类型的写请求,因此A1由于优先级低被缓存起来后调度,导致A2先于A1写到文件中,则文件的A区域数据即变成了A1,而非期望的A2,从而导致文件数据错误。因此当系统处于高负载状态下时,对各IO请求进行冲突检测,即确定具有重叠区域的冲突IO请求,按照各冲突IO请求的到达时间的顺序进行下发。不冲突的IO请求则进入S305根据调度策略等待调度下发。
S305:根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
S306:按照每个所述IO请求的到达时间的顺序进行下发。
由此可见,在本实施例中,当系统处于高负载状态下时,对各IO请求进行冲突检测。对于具有重叠区域的冲突IO请求,按照其到达时间的顺序进行下发,保障了IO的时序性,避免了由于IO调度导致的文件数据错误。
下面对本申请实施例提供的一种流量控制系统进行介绍,下文描述的一种流量控制系统与上文描述的一种流量控制方法可以相互参照。
参见图5,根据一示例性实施例示出的一种流量控制系统的结构图,如图5所示,包括:
设置模块501,用于确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
判断模块502,用于判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则启动第一下发模块的工作流程;若否,则启动第二下发模块的工作流程;
所述第一下发模块503,用于根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
所述第二下发模块504,用于按照每个所述IO请求的到达时间的顺序进行下发。
本申请实施例提供的流量控制系统,针对低负载情况和高负载情况采用不同的调度方式。当业务类型的IO请求的平均时延不大于预设值时,即在低负载情况下按照各IO请求的到达时间的顺序进行下发,非业务类型的IO可以最大限度的利用资源进行下发。当业务类型的IO请求的平均时延大于预设值时,即在高负载情况下根据调度策略对各优先级的IO请求进行下发,非业务类型的IO也可以持续获得部分资源下发,在保证用户正常业务有效运行的前提下,防止因数据重建等非业务无法执行而增加数据风险的问题。
在上述实施例的基础上,作为一种优选实施方式,所述第一下发模块503包括:
确定单元,用于根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量;和/或,根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量;
下发单元,用于根据所述下发数量下发每个所述优先级的IO请求。
在上述实施例的基础上,作为一种优选实施方式,所述确定单元具体为将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的下发数量的单元。
在上述实施例的基础上,作为一种优选实施方式,所述确定单元具体为将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的下发数量的单元。
在上述实施例的基础上,作为一种优选实施方式,所述确定单元包括:
判断子单元,用于判断所有所述优先级对应的下发上限IO数量之和是否大于所有所述优先级对应的已下发IO数量之和;若是,则启动第一计算子单元的工作流程;
第一计算子单元,用于将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的第一候选下发数量;
第二计算子单元,用于将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的第二候选下发数量;
确定子单元,用于将所述第一候选下发数量与所述第二候选下发数量中的最小值确定为所述属于不同优先级的IO请求的下发数量。
在上述实施例的基础上,作为一种优选实施方式,所述第一下发模块503包括:
判断单元,用于判断所有所述优先级对应的当前下发上限IO数量之和是否大于所有所述优先级对应的当前已下发IO数量之和;若是,则启动计算单元的工作流程;
计算单元,用于将所述当前下发上限IO数量之和与所述当前已下发IO数量之和的差值作为额外下发数量;
分配单元,用于按照当前未下发IO请求的优先级由高至低分配所述额外下发数量。
在上述实施例的基础上,作为一种优选实施方式,还包括:
冲突检测模块,用于对所有所述IO请求进行冲突检测,得到具有重叠区域的冲突IO请求,并按照每个所述冲突IO请求的到达时间的顺序下发所有所述冲突IO请求。
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请还提供了一种电子设备,参见图6,本申请实施例提供的一种电子设备600的结构图,如图6所示,可以包括处理器11和存储器12。该电子设备600还可以包括多媒体组件13,输入/输出(I/O)接口14,以及通信组件15中的一者或多者。
其中,处理器11用于控制该电子设备600的整体操作,以完成上述的流量控制方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的流量控制方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述流量控制方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由电子设备600的处理器11执行以完成上述的流量控制方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种流量控制方法,其特征在于,包括:
确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
判断所有所述业务类型的IO请求的平均时延是否大于预设值;
若是,则根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
若否,则按照每个所述IO请求的到达时间的顺序进行下发;
所述根据调度策略确定属于不同优先级的IO请求的下发数量,包括:
根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量;
和/或,根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量;
所述根据调度策略确定属于不同优先级的IO请求的下发数量,还包括:
判断所有所述优先级对应的下发上限IO数量之和是否大于所有所述优先级对应的已下发IO数量之和;
若是,则将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的第一候选下发数量;
将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的第二候选下发数量;
将所述第一候选下发数量与所述第二候选下发数量中的最小值确定为所述属于不同优先级的IO请求的下发数量。
2.根据权利要求1所述流量控制方法,其特征在于,所述根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量,包括:
将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的下发数量。
3.根据权利要求1所述流量控制方法,其特征在于,所述根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量,包括:
将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的下发数量。
4.根据权利要求1所述流量控制方法,其特征在于,所述根据所述下发数量下发所述属于不同优先级的IO请求之后,还包括:
判断所有所述优先级对应的当前下发上限IO数量之和是否大于所有所述优先级对应的当前已下发IO数量之和;
若是,则将所述当前下发上限IO数量之和与所述当前已下发IO数量之和的差值作为额外下发数量;
按照当前未下发IO请求的优先级由高至低分配所述额外下发数量。
5.根据权利要求1至4任一项所述流量控制方法,其特征在于,当所述平均时延大于所述预设值时,还包括:
对所有所述IO请求进行冲突检测,得到具有重叠区域的冲突IO请求;
按照每个所述冲突IO请求的到达时间的顺序下发所有所述冲突IO请求。
6.一种流量控制系统,其特征在于,包括:
设置模块,用于确定每个IO请求的IO类型,并根据所述IO类型为每个所述IO请求设置优先级;其中,所述IO类型包括业务类型和非业务类型,所述业务类型的IO请求的优先级高于所述非业务类型的IO请求的优先级;
判断模块,用于判断所有所述业务类型的IO请求的平均时延是否大于预设值;若是,则启动第一下发模块的工作流程;若否,则启动第二下发模块的工作流程;
所述第一下发模块,用于根据调度策略确定属于不同优先级的IO请求的下发数量,并根据所述下发数量下发所述属于不同优先级的IO请求;
所述第二下发模块,用于按照每个所述IO请求的到达时间的顺序进行下发;
所述第一下发模块包括:
确定单元,用于根据不同优先级对应的缓存队列的IO数量确定所述属于不同优先级的IO请求的下发数量;和/或,根据不同优先级对应的下发上限IO数量和已下发IO数量确定所述属于不同优先级的IO请求的下发数量;
下发单元,用于根据所述下发数量下发每个所述优先级的IO请求;
所述确定单元包括:
判断子单元,用于判断所有所述优先级对应的下发上限IO数量之和是否大于所有所述优先级对应的已下发IO数量之和;若是,则启动第一计算子单元的工作流程;
第一计算子单元,用于将不同优先级对应的缓存队列的IO数量作为所述属于不同优先级的IO请求的第一候选下发数量;
第二计算子单元,用于将不同优先级对应的下发上限IO数量与已下发IO数量的差值作为所述属于不同优先级的IO请求的第二候选下发数量;
确定子单元,用于将所述第一候选下发数量与所述第二候选下发数量中的最小值确定为所述属于不同优先级的IO请求的下发数量。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述流量控制方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述流量控制方法的步骤。
CN201910380620.5A 2019-05-08 2019-05-08 一种流量控制方法、系统及电子设备和存储介质 Active CN110099012B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910380620.5A CN110099012B (zh) 2019-05-08 2019-05-08 一种流量控制方法、系统及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910380620.5A CN110099012B (zh) 2019-05-08 2019-05-08 一种流量控制方法、系统及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110099012A CN110099012A (zh) 2019-08-06
CN110099012B true CN110099012B (zh) 2022-11-22

Family

ID=67447321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910380620.5A Active CN110099012B (zh) 2019-05-08 2019-05-08 一种流量控制方法、系统及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110099012B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442443A (zh) * 2019-08-14 2019-11-12 北京首都在线科技股份有限公司 一种调整优先级的方法及装置
CN111427512A (zh) * 2020-03-18 2020-07-17 杭州宏杉科技股份有限公司 一种流量控制方法及装置
CN113608885B (zh) * 2021-06-30 2023-12-22 济南浪潮数据技术有限公司 一种客户端请求处理方法、装置、设备及存储介质
CN115729684B (zh) * 2021-08-25 2023-09-19 荣耀终端有限公司 输入输出请求处理方法和电子设备
CN116719630B (zh) * 2023-08-11 2024-03-15 中邮消费金融有限公司 案件调度方法、设备、存储介质及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602797B2 (en) * 2003-10-02 2009-10-13 Alcatel Lucent Method and apparatus for request/grant priority scheduling
CN104391656A (zh) * 2014-11-19 2015-03-04 华为技术有限公司 一种存储设备的io资源分配方法、装置及存储设备

Also Published As

Publication number Publication date
CN110099012A (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
CN110099012B (zh) 一种流量控制方法、系统及电子设备和存储介质
US10628216B2 (en) I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status
WO2019128535A1 (zh) 消息管理方法、设备及存储介质
US9582326B2 (en) Quality of service classes
US20160225367A1 (en) Voice output control device, voice output control method, and recording medium
US9201693B2 (en) Quota-based resource management
KR20190121777A (ko) 서비스 실행 방법 및 디바이스
US8838863B2 (en) Resource controlling with dynamic priority adjustment
CN109857551B (zh) 基于云计算的服务资源的调度方法及装置、电子设备
EP3508975A1 (en) Opportunistic multitasking
CN103593234A (zh) 自适应进程重要性
CN109117280B (zh) 电子装置及其限制进程间通信的方法、存储介质
US9645747B2 (en) Management of allocation for alias devices
US8949845B2 (en) Systems and methods for resource controlling
CN114143327A (zh) 集群资源配额分配方法、装置及电子设备
CN116089049B (zh) 基于异步并行i/o请求的进程同步调度方法、装置以及设备
CN112463028B (zh) 一种i/o处理方法、系统、设备及计算机可读存储介质
CN112463027B (zh) 一种i/o处理方法、系统、设备及计算机可读存储介质
US20120226833A1 (en) Integrated circuit and method for reducing violations of a timing costraint
US10778806B2 (en) Shard sandboxing
CN106484536B (zh) 一种io调度方法、装置和设备
CN113368494A (zh) 云设备分配方法、装置、电子设备及存储介质
CN113259261B (zh) 网络流量控制方法和电子设备
CN112559142B (zh) 容器的控制方法、装置、边缘计算系统、介质及设备
US10942875B2 (en) System and method for regulating host IOs and internal background operations in a storage system

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