CN118118428A - 一种数据流调度方法及相关设备 - Google Patents
一种数据流调度方法及相关设备 Download PDFInfo
- Publication number
- CN118118428A CN118118428A CN202211528807.3A CN202211528807A CN118118428A CN 118118428 A CN118118428 A CN 118118428A CN 202211528807 A CN202211528807 A CN 202211528807A CN 118118428 A CN118118428 A CN 118118428A
- Authority
- CN
- China
- Prior art keywords
- queue
- data stream
- time
- scheduling
- period
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000005540 biological transmission Effects 0.000 claims abstract description 171
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002596 correlated effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 22
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 6
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007599 discharging Methods 0.000 description 3
- PWWSSIYVTQUJQQ-UHFFFAOYSA-N distearyl thiodipropionate Chemical compound CCCCCCCCCCCCCCCCCCOC(=O)CCSCCC(=O)OCCCCCCCCCCCCCCCCCC PWWSSIYVTQUJQQ-UHFFFAOYSA-N 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据流调度方法,可以应用于同时传输时延敏感业务与带宽敏感业务的场景等。该方法包括:获取第一数据流与第二数据流,第一数据流的优先级高于第二数据流的优先级。第一数据流通过第一队列传输,第二数据流通过第二队列传输;并在调度第二队列的过程中考虑第一队列中第一数据流的传输特征,以减少第二队列调出的第二数据流在底层队列中的积压。换句话说,调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据流调度方法及相关设备。
背景技术
随着终端设备的多样化,例如手机、平板、智能手表等。跨设备近场分布式业务也越来越多。例如,文件分享、投屏等。
目前,同一设备可能同时进行多个分布式业务,这些业务之间具有不同的流量特征和优先级。例如,文件分享的特征是持续的大流量,对带宽敏感。投屏的特征是周期性突发的流量,对时延敏感,优先级相对更高。
因此,在多种业务并发时,如何进行合理调度是亟待解决的技术问题。
发明内容
本申请提供了一种一种数据流调度方法及相关设备,通过第一队列中第一数据流的传输特征调度第二队列,以减少第二队列调出的第二数据流在底层队列中的积压,从而保证第一数据流的低时延传输。
本申请实施例第一方面提供了一种数据流调度方法,该方法可以应用于同时传输时延敏感业务与带宽敏感业务的场景等。该方法可以由计算机设备执行,也可以由计算机设备的部件(例如处理器、芯片、或芯片系统等)执行。该方法包括:获取第一数据流与第二数据流,第一数据流的优先级高于第二数据流的优先级;第一数据流通过第一队列传输,第二数据流通过第二队列传输;获取第一队列中第一数据流的传输特征,传输特征与第一数据流中报文到达第一队列的时刻相关;基于传输特征调度第二队列。
本申请实施例中,通过确定传输第一数据流的第一队列与传输第二数据流的第二队列,第一数据流的优先级高于第二数据流的优先级。并在调度第二队列的过程中考虑第一队列中第一数据流的传输特征,以减少第二队列调出的第二数据流在底层队列中的积压。换句话说,调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
可选地,在第一方面的一种可能的实现方式中,上述的传输特征为第一数据流的传输周期;基于传输特征调度第二队列,包括:基于传输周期确定第一时间段,第一时间段的时长小于传输周期的时长,且第一时间段位于第一数据流中相邻报文到达第一队列的时刻之间;调度第二队列在第一时间段传输第二数据流。
该种可能的实现方式中,通过第一数据流的传输周期确定第二队列传输第二数据流的第一时间段,由于第一时间段的时长小于传输周期的时长,且第一时间段位于第一数据流中相邻报文到达第一队列的时刻之间。即第一时间段的结束时刻与第一数据流下次报文的到达时刻的差值大于或等于第一预设时间段。第一时间段的结束时刻与第一数据流下次报文的到达时刻的差值可以理解为是排空时间段,用于网卡队列排出第二数据流的报文,减少第二数据流的报文在网卡队列形成积压,减少第二数据流的报文对第一数据流中报文的传输的影响,从而降低第一数据流在底层队列的传输时延。
可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:基于第一队列中的报文数量确定第二队列传输第二数据流的开始时刻;基于传输特征调度第二队列,包括:基于传输特征与开始时刻调度第二队列。
该种可能的实现方式中,通过第一队列中的报文数量确定第二队列传输第二数据流的开始时刻。从而减少后续在底层队列中第二数据流的积压,减少第二数据流在底层队列中对第一数据流的时延影响。
可选地,在第一方面的一种可能的实现方式中,上述的开始时刻根据第一队列中第一数据流的报文数量确定。
该种可能的实现方式中,该开始时刻可以是第一队列中第一数据流的报文数量小于阈值的时刻,也可以是第一队列中第一数据流的报文数量小于阈值的时刻加上一段时间段后的时刻。
可选地,在第一方面的一种可能的实现方式中,上述第一队列中第一数据流的报文数量小于预设阈值的时刻为第一时刻,开始时刻与第一时刻的差值与第一数据流的大小正相关,第一数据流的大小包括以下至少一项:字节总数、报文数量等。
该种可能的实现方式中,第一时刻与开始时刻的差值与第一数据流的大小正相关。该第一数据流的大小包括以下至少一项:字节总数、报文数量等。例如,第一数据流的报文数量越多,第二预设时间段越大。进而使得底层队列有足够的时间将已进入的第一数据流排出,减少后续第二数据流进入底层队列后对第一数据流的传输带来的影响。
可选地,在第一方面的一种可能的实现方式中,上述步骤:基于传输特征与开始时刻调度第二队列,包括:在第二队列在发送周期的情况下,调度第二队列传输第二数据流,发送周期根据开始时刻与传输特征确定。
该种可能的实现方式中,根据开始时刻与传输特征确定第二队列的发送周期,由于开始时刻用于确定t,传输特征用于确定dt,进而实现第二队列在[t,t+dt]传输第二数据流。
可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:获取与网卡驱动相关的统计信息,统计信息包括预设时间段内的以下至少一项参数:第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长等;驱动队列用于接收来自第一队列与第二队列的数据,网卡驱动与计算机设备连接;基于统计信息更新第一时间段以得到第二时间段,第二时间段用于保证统计信息中的参数在预设范围内,第二时间段用于调度第二队列。
该种可能的实现方式中,可以通过对网卡处的统计信息对第二队列传输第二数据流的第一时间段进行动态调整。以实现根据网卡传输数据流的具体情况来反向调整第二队列的传输时间段,进而减少网卡队列中第二数据流的积压,并减少第一数据流的传输时延。
可选地,在第一方面的一种可能的实现方式中,上述的第一数据流属于时延敏感业务,第二数据流属于带宽敏感业务。
该种可能的实现方式中,该方法适用于同时传输时延敏感业务与带宽敏感业务的场景。
可选地,在第一方面的一种可能的实现方式中,上述第一队列与第二队列位于同一计算机设备或不同计算机设备。
该种可能的实现方式中,该方法既适用于一个计算机设备内部,又可以适用于不同计算机设备之间。
本申请实施例第二方面提供了一种计算机设备。该计算机设备可以应用于同时传输时延敏感业务与带宽敏感业务的场景等。该计算机设备包括:获取单元,用于获取第一数据流与第二数据流,第一数据流的优先级高于第二数据流的优先级;第一数据流通过第一队列传输,第二数据流通过第二队列传输;获取单元,还用于获取第一队列中第一数据流的传输特征,传输特征与第一数据流中报文到达第一队列的时刻相关;调度单元,用于基于传输特征调度第二队列。
可选地,在第二方面的一种可能的实现方式中,上述的传输特征为第一数据流的传输周期;调度单元,具体用于基于传输周期确定第一时间段,第一时间段的时长小于传输周期的时长,且第一时间段位于第一数据流中相邻报文到达第一队列的时刻之间;调度单元,具体用于调度第二队列在第一时间段传输第二数据流。
可选地,在第二方面的一种可能的实现方式中,上述的计算机设备还包括:确定单元,还用于基于第一队列中的报文数量确定第二队列传输第二数据流的开始时刻;调度单元,具体用于基于传输特征与开始时刻调度第二队列。
可选地,在第二方面的一种可能的实现方式中,上述的开始时刻根据第一队列中第一数据流的报文数量确定。
可选地,在第二方面的一种可能的实现方式中,上述的第一队列中第一数据流的报文数量小于预设阈值的时刻为第一时刻,开始时刻与第一时刻的差值与第一数据流的大小正相关,第一数据流的大小包括以下至少一项:字节总数、报文数量等。
可选地,在第二方面的一种可能的实现方式中,上述的调度单元,具体用于在第二队列在发送周期的情况下,调度第二队列传输第二数据流,发送周期根据开始时刻与传输特征确定。
可选地,在第二方面的一种可能的实现方式中,上述的获取单元,还用于获取与网卡驱动相关的统计信息,统计信息包括预设时间段内的以下至少一项参数:第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长等;驱动队列用于接收来自第一队列与第二队列的数据,网卡驱动与计算机设备连接;计算机设备还包括:更新单元,用于基于统计信息更新第一时间段以得到第二时间段,第二时间段用于保证统计信息中的参数在预设范围内,第二时间段用于调度第二队列。
可选地,在第二方面的一种可能的实现方式中,上述的第一数据流属于时延敏感业务,第二数据流属于带宽敏感业务。
可选地,在第二方面的一种可能的实现方式中,上述的第一队列与第二队列位于同一计算机设备或不同计算机设备。
本申请第三方面提供了一种计算机设备,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该计算机设备实现上述第一方面或第一方面的任意可能的实现方式中的方法。
本申请第四方面提供了一种计算机可读介质,其上存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法。
本申请第五方面提供了一种计算机程序产品,该计算机程序产品在计算机上执行时,使得计算机执行前述第一方面或第一方面的任意可能的实现方式中的方法。
本申请实施例第六方面提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持计算机设备实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。
在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。可选的,芯片系统还包括接口电路,接口电路为至少一个处理器提供程序指令和/或数据。
其中,第二、第三、第四、第五、第六方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请具有以下优点:通过确定传输第一数据流的第一队列与传输第二数据流的第二队列,第一数据流的优先级高于第二数据流的优先级。并基于第一队列中第一数据流的传输特征调度第二队列,以减少第二队列调出的第二数据流在底层队列中的积压。换句话说,调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
附图说明
图1A为本申请实施例提供的应用场景示意图;
图1B为本申请实施例提供的另一应用场景示意图;
图2为本申请实施例提供的不同类型业务调度的示意图;
图3为本申请实施例提供的不同类型业务调度的另一示意图;
图4为本申请实施例提供的部署场景的示意图;
图5为本申请实施例提供的部署场景的另一示意图;
图6为本申请实施例提供的数据流调度方法的流程示意图;
图7为本申请实施例提供的第一数据流与第二数据流的示意图;
图8为本申请实施例提供的第一数据流与第二数据流的另一示意图;
图9为本申请实施例提供的第一数据流与第二数据流的另一示意图;
图10为本申请实施例提供的第一数据流与第二数据流的调度规则示意图;
图11为本申请实施例提供的动态更新第一时间段的流程示意图;
图12为本申请实施例提供的动态更新第一时间段的另一流程示意图;
图13为图5所示部署场景下统计流量模型参数的流程示意图;
图14为图5所示部署场景下下发调度规则的流程示意图;
图15为本申请实施例提供的高优先级队列的调度流程示意图;
图16为本申请实施例提供的低优先级队列的调度流程示意图;
图17本申请实施例提供的计算机设备的一个结构示意图;
图18为本申请实施例提供的计算机设备的一个结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、近场分布式业务
近场分布式业务是指多个设备间通过无线保真(wireless fidelity,WiFi)局域网、对等网络(peer-to-peer,P2P)连接、蓝牙等近场通信进行交互的业务。
2、多屏协同
多屏协同是指一种分布式技术,可以实现跨系统、跨设备协同。例如,手机与电脑、平板连接,以实现资源共享、协同操作等。
3、时延敏感任务与带宽敏感任务
时延敏感任务是指对时延较敏感的业务,一般指优先级较高的业务,或者短时间内连续的大量流量(即流量突发),或者是用户对时延需求较高需求的业务。例如投屏、视频/语音通话、游戏对战、分布式相机、多屏协同、直播、新闻浏览、网上购物、电子支付、扫二维码等业务。
带宽敏感任务是指对带宽较敏感的业务,一般是持续的大流量业务(或称为吞吐型业务),或者是用户对时延需求较低、传输量需求较高的业务。例如文件分享、上传/下载、应用更新、网盘、分布式文件、视频点播等业务。
可以理解的是,时延敏感业务和带宽敏感业务可以是对不同业务的描述,也可以是对同一业务的描述(即一个业务本质上可以即是时延敏感业务,又是带宽敏感业务)。如果是对同一业务的描述,可以根据实际需要择一分类,具体此处不做限定。
首先,对本申请实施例提供的方法所适用的应用场景进行简单介绍。
本申请实施例提供的数据流调度方法主要应用于第一计算机设备与第二计算机设备而进行业务传输的场景。为了方便描述,后续以计算机设备是终端设备,业务包括时延敏感业务与带宽敏感为例进行示例性描述,可以理解的是,在实际应用中,计算机设备还可以是云侧设备,如服务器、虚拟机等,业务还可以有其他类型,具体此处不做限定。
上述的终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话,手机(mobile phone))、计算机和数据卡,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personalcommunication service,PCS)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、平板电脑(Pad)、带无线收发功能的电脑等设备。无线终端设备也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobile station)、移动台(mobile station,MS)、远程站(remote station)、接入点(access point,AP)、远程终端设备(remote terminal)、接入终端设备(access terminal)、用户终端设备(userterminal)、用户代理(user agent)、用户站(subscriber station,SS)、用户端设备(customer premises equipment,CPE)、终端(terminal)、用户设备(user equipment,UE)、移动终端(mobile terminal,MT)、无人机、车辆、车机、智能终端(例如智能电视、智能手表、智能眼镜等)等。终端设备也可以是可穿戴设备以及下一代通信系统,例如,5G通信系统中的终端设备或者未来演进的公共陆地移动网络(public land mobile network,PLMN)中的终端设备或者5G通信系统下一步发展的其他通信系统中的终端设备等。
另外,上述第二计算机设备的数量可以是一个或多个。下面以第二计算机设备是一个终端设备与两个终端设备为例进行描述。
在一种可能实现的方式中,本申请实施例提供的一种应用场景示意图如图1A所示。该应用场景包括第一终端设备101、第二终端设备102以及第三终端设备103。其中,第一终端设备101与第二终端设备102传输时延敏感业务。第一终端设备101与第三终端设备103传输带宽敏感业务。即第一终端设备102向多个终端设备(即图1A中的第二终端设备102与第三终端设备103)分别传输不同的业务数据。
在另一种可能实现的方式中,本申请实施例提供的一种应用场景示意图如图1B所示。该应用场景包括第一终端设备101与第二终端设备102。其中,第一终端设备101与第二终端设备102传输时延敏感业务与带宽敏感业务。即第一终端设备102向同一终端设备(即图1B中的第二终端设备102)传输多个业务数据。
在图1A或图1B所示的应用场景中,由于网络资源时有限的,流量调度需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。如图2所示,不同类型的数据流入队到不同的队列缓存,通过在出队时对队列进行调度,控制出队的速率和顺序,可以保障某些高优先级业务的服务质量。
目前,常用的数据流调度方法如图3所示,当时延敏感的高优先级业务和低优先级的高吞吐业务(或者带宽敏感的低优先级业务)并发时,高优先级业务的报文进入高优先级队列,低优先级业务的报文进入低优先级队列。在调度时采用绝对优先级的调度规则,让高优先级业务的报文先出队,减少高优先级业务的排队时延,只有高优先级队列中没有报文时才调度低优先级队列中的报文发送。
然而,在Linux操作系统的场景中(如图4所示),上述图3所涉及的队列只是在图4所示的流量调度中,即图3所示的调度方法只是在队列规则(queueing discipline,qdisc)中。从图4可以看出,数据流的报文在经过qdisc调度之后到实际从网卡发出去,还要经过多级队列,在底层队列(例如图4中的驱动队列和网卡队列)两种业务的报文可能进入同一个队列排队或者分开在不同的队列上但高优先级的报文不一定具有绝对优先级。这样,从qdisc优先调度的高优先级报文仍然会受已经在底层队列排队的低优先级报文影响。
因此,图3所示的调度方法在图4所示的场景中,如何减少由于底层队列中低优先级报文的积压导致的高优先级报文的传输时延增加是亟待解决的技术问题。
为了解决上述问题,本申请实施例提供一种数据流调度方法主要应用于发送端(即第一终端设备101)在向第二终端设备102与第三终端设备103传输业务时如何调度业务对应的数据流。具体的,通过确定传输第一数据流的第一队列与传输第二数据流的第二队列,第一数据流的优先级高于第二数据流的优先级。并基于第一队列中第一数据流的传输特征调度第二队列,以减少第二队列调出的第二数据流在底层队列中的积压。换句话说,调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
在对本申请实施例提供的数据流调度方法描述之前,先对本申请实施例提供的部署场景进行描述。该部署场景在图4的基础上进行改进,以减少由于底层队列中低优先级报文的积压导致的高优先级报文的传输时延增加。
如图5所示,本申请实施例提供的数据流调度方法可以包含在计算机设备的操作系统软件中,并部署在计算机设备硬件上的程序代码。其中,该计算机设备包括用户面、内核、以及与计算机设备连接的网卡。用户面中的传输组件为App(例如App1、App2)提供传输接口,可以运行在应用进程中。传输组件对传输层套接字进行封装,并为App的数据流提供传输接口(例如,文件传输接口与流传输接口等)。在传输组件内部,通过流量模型统计模块对来自App的数据流(例如,来自App1的第一数据流与来自App2的第二数据流)进行统计处理得到统计结果(例如,数据流的业务类型识别、数据流中报文的五元组、帧间隔、帧间隔标准差、平均帧大小等)。用户面的调度引擎模块根据统计结果确定是否开启队列间联合调度规则(即是否根据第一队列中第一数据流的传输特征调度第二队列)。调度引擎确定开启队列间联合调度规则之后,向流量调度模块发送数据流的优先级信息(例如,该优先级信息用于指示第一数据流的优先级高于第二数据流的优先级,或者指示第一队列为高优先级队列,第二队列为低优先级队列。)与配置信息,该配置信息包括第二队列传输第二数据流的开始时刻t(或者理解为第二队列发送窗口的开始时刻)与时间段dt。从而流量调度模块调度第二队列在[t,t+dt]时间段内开启发送窗口,对第二数据流进行传输。其中,开始时刻t与第一队列中第一数据流的报文数量相关。时间段dt与第一数据流的传输特征(例如,第一数据流的传输周期等)相关,该传输特征可以用于确定第一数据流中报文到达第一队列的时刻。
另外,调度引擎模块还可以调用系统接口获取网卡驱动的统计信息(例如,第一数据流的往返时延、第一数据流的抖动、网卡速率、发送字节数、网卡利用率、驱动队列的排队时长等)。并根据该统计信息更新时间段dt,并使用更新后的时间段dt调度第二队列。
可以看出,优先级队列(即第二队列)的发送窗口是动态的,取决于高优先级队列的发送情况,低优先级队列的发送开关在高优先级队列中报文数量小于阈值后的一段时间内打开,可以降低高优先级传输第一数据流的平均时延,减少第一数据流的卡顿和掉帧。换句话说调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
下面对本申请实施例提供的数据流调度方法进行描述。该方法可以由计算机设备执行,也可以由计算机设备的部件(例如处理器、芯片、或芯片系统等)执行。本申请实施例仅以计算机设备是终端设备为例进行示例性描述,可以理解的是,该计算机设备还可以是服务器等,具体此处不做限定。另外,本申请实施例所涉及的数据流中的数据可以是指文本、图像、音视频等具体此处不做限定。
请参阅图6,本申请实施例提供的数据流调度方法的一个流程示意图,可以应用在前述图5所示的部署场景中,该方法可以包括步骤601至步骤603。下面对步骤601至步骤603进行详细说明。
步骤601,获取第一数据流与第二数据流。
本申请实施例中,计算机设备获取第一数据流与第二数据流的方式有多种方式,可以是通过用户上传的方式,也可以是从应用程序(Application,App)处获取的方式,还可以是从数据库中选取的方式等,具体此处不做限定。其中,第一数据流的优先级高于第二数据流的优先级。
另外,第一数据流与第二数据流所属的业务类型可以相同或不同。本申请实施例中仅以第一数据流与第二数据流的所属业务不同为例进行示例性描述。
可选地,数据流所属的业务类型可以根据数据流的接口编号、流量识别特征所确定。该流量识别特征包括以下至少一项:网卡标识、源网际互连协议(Internet Protocol,IP)地址、目的IP地址、源端口、目的端口、服务类型(type of service,TOS)字段、差分服务代码点(differentiated services code point,DSCP)字段等。
可选地,第一数据流(流传输)与第二数据流(文件传输)对应的DSCP字段值不同。数据流的DSCP值也可以用于区分高优先级报文与低优先级报文。
可选地,第一数据流属于时延敏感业务,例如,投屏、蓝牙音乐、视频/语音通话、游戏对战、分布式相机、多屏协同、直播、新闻浏览、网上购物、电子支付、扫二维码等。第二数据流属于带宽敏感业务,例如,文件分享、数据上传/下载、应用更新、网盘、分布式文件、视频点播等。在实际应用中,时延敏感业务与带宽敏感业务还可以有其他示例,具体此处不做限定。
本步骤中的第一数据流通过第一队列进行传输,第二数据流通过第二队列进行传输。另外,计算机设备确定第一队列与第二队列的方式有多种。可以是根据数据流的接口编号(例如,传输组件为不同App提供的传输接口对应的编号)确定传输该数据流的队列。也可以是根据数据流携带的标识确定传输该数据流的队列。还可以是根据数据流中报文的特殊字段确定传输该数据流的队列等,具体此处不做限定。
其中,第一队列与第二队列中的数据通过底层队列(例如网卡队列等)向外传输。
示例性的,计算机设备预设有如表1所示的第一映射表,该第一映射表用于表示接口编号与队列的关联关系。假设前述步骤601中,计算机设备中的用户面通过1#接口接收来自App1的第一数据流,通过2#接口接收来自App1的第二数据流。本步骤中。计算机设备通过第一映射表确定1#接口对应的队列为第一队列,从而确定传输第一数据流的队列为第一队列。同理,确定传输第二数据流的队列为第二队列。
表1
数据流的接口编号 | 接口编号对应的队列 |
1 | 第一队列 |
2 | 第二队列 |
可以理解的是,通过数据流携带的标识或数据流中报文的特殊字段确定队列的方式与前述表1对应的举例类似,具体此处不再赘述。
另外,本申请实施例对于步骤601与步骤601的时序关系不做限定。例如,步骤602在步骤601之后。该示例下,步骤602中可以根据第一数据流的相关信息(例如数据流的标识或数据流中报文的特殊字段等)确定传输第一数据流的队列。又例如,步骤602在步骤601之前。该示例下,步骤602中可以根据接口编号确定队列,即可以不用识别该接口编号所传输的数据流,直接根据接口编号确定传输数据流的队列。
步骤602,获取第一队列中第一数据流的传输特征。
计算机设备确定第一队列之后,可以获取第一队列中第一数据流的传输特征。该传输特征与第一数据流中报文到达第一队列的时刻相关。也可以理解为,该传输特征可以确定第一数据流中的报文到达第一队列的时刻。
可选地,该传输特征可以是第一数据流中相邻报文的(例如,报文间隔等),还可以是针对第一数据流中相邻N个报文的等,N为大于1的正整数,具体此处不做限定。
可以理解的是,对于没有固定传输周期的第一数据流,该传输特征也可以包括数据流中各报文到达第一队列的时刻规律(例如,第一数据流中的第n个报文与第n-1个报文之间的报文间隔是20毫秒,第n个报文与第n+1个报文之间的报文间隔是5毫秒)。
步骤603,基于传输特征调度第二队列。
计算机设备获取传输特征之后,可以基于该传输特征调度第二队列。
可选地,以传输特征是第一数据流的传输周期为例,计算机设备可以先确定第一时间段。并调度第二队列在第一时间段内传输第二数据流。该第一时间段的时长小于传输周期的时长,且第一时间段位于第一数据流中相邻报文到达第一队列的时刻之间。该第一时间段可以理解为是前述图5所示中的dt。
其中,第一时间段的结束时刻与第一数据流下次报文的到达时刻的差值大于或等于第一预设时间段。第一时间段的结束时刻与第一数据流下次报文的到达时刻的差值可以理解为是排空时间段,用于网卡队列排出第二数据流的报文,减少第二数据流的报文在网卡队列形成积压,减少第二数据流的报文对第一数据流中报文的传输,从而降低第一数据流在底层队列的传输时延。
可选地,底层队列可以是网卡队列,该底层队列接收来自第一队列与第二队列传输的数据流,并将数据流传输给与计算机设备通信的其他设备。
另外,计算机设备还可以获取开始时刻,该开始时刻为第二队列开始传输第二数据流的时刻。该开始时刻可以是预设时刻,也可以是基于第一队列中报文数量所确定的时刻等,具体此处不做限定。其中,第一队列中的报文数量小于预设阈值的时刻(即第一时刻)与第二队列传输第二数据流的开始时刻之间相差第二预设时间段。例如,在第二预设时间段为0的情况下,第一队列中的报文数量小于预设阈值的时刻为第二队列传输第二数据流的开始时刻。又例如,在第二预设时间段为非0的情况下,第一队列中的报文数量小于预设阈值的时刻加上第二预设时间段的时刻为第二队列传输第二数据流的开始时刻。
可选地,在第二队列的发送周期的情况下,调度第二队列传输第二数据流。该发送周期根据开始时刻与传输特征(或第一时间段)确定。该发送周期也可以理解为是前述的[t,t+dt]。
可选地,第一时刻与开始时刻的差值(即第二预设时间段)与第一数据流的大小正相关。该第一数据流的大小包括以下至少一项:字节总数、报文数量等。例如,第一数据流的报文数量越多,第二预设时间段越大。进而使得底层队列有足够的时间将已进入的第一数据流排出,减少第二数据流进入底层队列后对第一数据流的传输带来的影响。
示例1,第一数据流与第二数据流的传输过程如图7所示。其中,横坐标表示时刻,纵坐标表示数据量(例如,报文数量或字节数量等)。每一个竖的方块用于表示一个报文或多个报文。第一数据流的传输周期为16毫秒(ms),第一时间段为8ms(小于第一数据流的传输周期)。以图7中第一数据流的第一个传输周期为例,可以看出,第一时间段的开始时刻为第一队列传输完第一数据流报文的时刻(即第二预设时间段为0ms)。第一时间段的结束时刻与第一数据流的下一传输周期之前相隔4ms(即第一预设时间段为4ms)。该第一预设时间段可以理解为前述的排空时间段。
示例2,第一数据流与第二数据流的传输过程如图8所示。其中,横坐标表示时刻,纵坐标表示数据量(例如,报文数量或字节数量等)。第一数据流的传输周期为16毫秒(ms),第一时间段为8ms(小于第一数据流的传输周期)。以图8中第一数据流的第一个传输周期为例,可以看出,第一时间段的开始时刻为第一队列传输完第一数据流报文的时刻加上第二预设时间段的时刻(即第二预设时间段为2ms)。第一时间段的结束时刻与第一数据流的下一传输周期之前相隔2ms(即第一预设时间段为2ms)。该第一预设时间段可以理解为前述的排空时间段。
上述示例1与示例2的区别在于,在某一周期内,第一队列传输完第一数据流的报文之后是否立刻调度第二队列传输第二数据流。示例1的情况为第一队列传输完第一数据流的报文之后立刻调度第二队列传输第二数据流。示例2的情况为第一队列传输完第一数据流的报文之后间隔2ms(即第二预设时间段)再调度第二队列传输第二数据流。
可以理解的是,前述图7与图8只是举例,在实际应用中,第一数据流与第二数据流的传输过程还可以有其他情况。例如,如图9所示,第二队列传输第二数据流的开始时刻,第一队列还可以在传输第一数据流的报文,即第一队列与第二队列可以有传输数据流的重叠时间段。对于第一数据流与第二数据流的具体传输过程此处不做限定。
示例性的,具体的调度过程可以如图10所示。第一队列为优先级队列,第二队列为低优先队列。第一队列有两种状态,分别为忙时状态与闲时状态。忙时状态表示第一队列中有第一数据流的报文需要传输。闲时状态表示第一队列中没有第一数据流的报文或者第一队列中第一数据流的报文数量小于预设阈值。第二队列有两种状态,分别为可发送状态与不可发送状态。可发送状态表示第二队列在发送周期[t,t+dt]内。不可发送状态表示第二队列不在发送周期内。由图10可以看出,第一队列中每次报文发送结束后会进入闲时状态,当检测到有新的第一数据流的报文进来时转为忙时状态,并发送信号给第二队列,第二队列开启发送窗口持续第一时间段结束。
可以理解的是,图10中第一队列与第二队列的状态情况只是举例,在实际应用中,第一队列与第二队列的状态还可以有其他的情况。例如,第二队列的状态还可以包括不可发送状态、限速状态、全速状态等,限速状态表示第二队列传输报文的速度小于预设速度。全速状态表示第二队列传输报文的速度为硬件所支持的最大速度等。
本申请实施例中,一方面,能够在队列规则(queueing discipline,qdisc)调度时使高优先级报文比积压在低优先级队列中的报文先出队,能够一定程度上减少低优先级业务对高优先级的影响。具体的,根据第一数据流的传输特征确定第二队列传输第二数据流的第一时间段。该第一时间段的时长小于传输周期的时长,且第一时间段位于第一数据流中相邻报文到达第一队列的时刻之间。即第一时间段的结束时刻与第一数据流下次报文的到达时刻的差值可以理解为是排空时间段,用于网卡队列排出第二数据流的报文,减少第二数据流的报文在网卡队列形成积压,减少第二数据流的报文对第一数据流中报文的传输,从而降低第一数据流在底层队列的传输时延。以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。另一方面,第二队列开始传输第二数据流的时刻可以是基于第一队列中报文数量所确定,进而减少底层队列中第二数据流对第一数据流的干扰。
另外,本申请实施例中的第一队列与第二队列可以位于同一计算机设备或不同计算机设备。
进一步的,由于数据流的传输是动态的,可能会受网络原因等其他因素影响。因此,还可以通过对网卡处的统计信息对第二队列传输第二数据流的第一时间段进行动态调整。具体流程如图11所示。动态调整过程包括步骤1101与步骤1102,下面分别进行描述:
步骤1101,获取与网卡驱动相关的统计信息。
计算机设备可以从网卡驱动处获取与网卡驱动相关的统计信息。该统计信息包括第三预设时间段内的以下至少一项参数:第一数据流的服务质量(quality of service,QoS)、网卡利用率、驱动队列的排队时长、网卡队列的平均发送速率、平均排队时长等。该驱动队列用于接收来自第一队列与第二队列的数据,网卡驱动与计算机设备连接。其中,排队时长指的是报文在驱动队列中的排队时长,发送速率是驱动队列发送报文的速率。
其中,第一数据流的QoS可以包括以下至少一项:报文的往返时延(即发送报文的时刻与接收到该报文对应的响应报文时刻的差值)、时延抖动(不同报文往返时延的抖动)等。
另外,关于上述至少一项参数的获取方式可以是直接获取,也可以通过获取其他信息计算得到。例如,其他信息可以包括网卡速率与发送字节数。通过网卡速率与发送字节数可以计算网卡利用率。具体的,发送字节数除以第三预设时间段得到的值,再除以网卡速率得到网卡利用率。对于上述统计信息的具体获取方式此处不做限定。
步骤1102,基于统计信息更新第一时间段以得到第二时间段,第二时间段用于调度第二队列。
计算机设备获取与网卡驱动相关的统计信息之后,基于该统计信息更新第一时间段,第二时间段用于调度第二队列。第二时间段用于保证统计信息中的参数在预设范围内。
示例性的,参数是网卡利用率的情况,该预设范围可以是90%-95%之间。参数是驱动队列平均排队长度的情况,该预设范围可以是100-150个IP分组之间。参数是平均发送速率的情况,该预设范围可以是80兆比特每秒(MB/s)-90MB/s之间。
本步骤可以理解为是对前述实施例中dt的调整,例如,如果网卡利用率、驱动队列平均排队长度或者平均发送速率高于目标范围,则调小dt,反之则调大。
本申请实施例中,可以通过对网卡处的统计信息对第二队列传输第二数据流的第一时间段进行动态调整。以实现根据网卡传输数据流的具体情况来反向调整第二队列的传输时间段,进而减少网卡队列中第二数据流的积压,并减少第一数据流的传输时延。
可选地,本申请实施例还提供另外一种更新第一时间段的具体过程。如图12所示,该过程在调度策略执行后实施,该过程包括步骤1201至步骤1206。
步骤1201,调度引擎模块定期从网卡驱动处获取信道负载。
调度引擎模块定期从网卡驱动处获取信道负载。信道负载用于指示网卡驱动对应信道繁忙时间占总工作时间的比例。
步骤1202,判断信道负载是否大于第一预设值,若是,执行步骤1203。若否,执行步骤1205。
调度引擎模块获取信道负载之后,判断信道负载是否大于第一预设值,若是,执行步骤1203。若否,执行步骤1205。
步骤1203,判断信道负载是否小于第二预设值,若是,执行步骤1206。若否,执行步骤1204。
在调度引擎模块确定信道负载大于第一预设值的情况下,判断信道负载是否小于第二预设值,若是,执行步骤1206。若否,执行步骤1204。第二预设值大于或等于第一预设值。
步骤1202与步骤1203也可以理解为用于判断调度引擎模块获取的信道负载是否在第一预设值与第二预设值之间(第二预设值大于第一预设值)。该第一预设值与第二预设值之间也可以理解为是预设范围。
步骤1204,增加可开启时间窗大小,调度引擎模块更新策略下发给流量调度模块。
若确定信道负载大于或等于第二预设值,说明低优先级队列的可开启时间窗过短,需要增加可开启时间窗大小。即调大dt直至信道负载在预设范围内。并将调整后的dt下发给流量调度模块。
步骤1205,减少可开启时间窗大小,调度引擎模块更新策略下发给流量调度模块。
若确定信道负载小于或等于第一预设值,说明低优先级队列的可开启时间窗过长,需要减少可开启时间窗大小。即调小dt直至信道负载在预设范围内。并将调整后的dt下发给流量调度模块。
步骤1206,判断业务是否结束,若是,结束流程。若否,重新执行步骤1201至步骤1206。
流量调度模块判断业务数据是否传输结束。若是,结束更新时间窗的过程。若否,重复执行步骤1201至步骤1206,直至满足预设条件。该预设条件包括以下至少一项:更新时间窗的次数达到预设值、业务传输结束等。
本实施例中,通过网卡驱动对应信道繁忙时间占总工作时间的比例与预设范围对低优先级队列的可开启时间窗进行实时调整,从而提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
接下来以第一数据流为多屏协同业务,第二数据流为文件分享业务为例,结合附图对于前述图6应用在图5所示部署场景下的具体流程进行详细描述。
首先,对图5所示部署场景中流量模型参数的统计过程。如图13所示,该过程包括步骤1301至步骤1306。
步骤1301,文件分享业务初始化文件传输接口,多屏协同业务初始化流传输接口。
步骤1302,上层业务调用传输组件的发送接口发送数据。
步骤1301与步骤1302可以理解为,上层业务使用传输组件发送业务数据时执行。传输组件封装传输层套接字,给文件分享和多屏协同分别提供了文件传输接口和流传输接口。在进行文件分享与多屏协同业务分别初始化传输接口,并调用传输组件的发送接口发送相应业务数据。
步骤1303,判断数据是否为流传输。若是,执行步骤1304。若否,执行步骤1305。
进一步的,流量调度模块确定来自传输组件发送接口的业务数据是否为流数据。若该业务数据是流数据,执行步骤1304。若该业务数据不是流数据,执行步骤1305。
可选地,如前述图13所示实施例中步骤1302的描述,可以根据接口是文件传输接口还是流传输接口来确定该接口传输的是否为流数据。即使用流传输接口传输的数据为流数据。
步骤1304,流量模型统计模块统计帧间隔、帧间隔抖动、平均帧大小等参数。
流量模型统计模块对业务数据进行统计得到统计结果,例如,帧间隔、帧间隔抖动(例如帧间隔标准差)、平均帧大小等参数。
步骤1305,传输组件将业务类型、DSTP字段值和流量统计参数同步给调度引擎模块。
传输组件确定业务数据的业务类型、DSTP字段值和流量统计参数,并同步给调度引擎模块。以便于调度引擎模块将业务数据输入相应队列进行传输。
可选地,文件传输和流传输分别使用不同dscp字段值。本步骤中,使用DSTP区分不同类型业务的流量,这里也可以使用网卡标识、源IP地址、目的IP地址、源端口、目的端口、服务类型(type of service,TOS)字段、差分服务代码点(differentiated services codepoint,DSCP)等其他字段来区分不同类型业务的流量。
步骤1306,判断业务是否结束。若是,结束统计流量模型参数的过程。
流量调度模块判断业务数据是否传输结束。若是,结束统计流量模型参数的过程。若否,重复执行步骤1301至步骤1306,直至满足预设条件。该预设条件包括以下至少一项:统计流量模型参数的时长达到预设时长、统计流量模型参数的数据量达到预设值、业务传输结束等。
本实施例中,提供一种为前述图5至图12所示实施例中的信息采集的过程。在传输组件传输文件分享业务和多屏协同业务的同时,统计多屏协同业务的帧间隔用于确定第一时间段,统计帧间隔抖动用于判断是否满足调度条件,统计平均帧大小用于确定第二预设时间段,从而确定可调度文件分享业务流量的时间区间,从而减少文件分享业务对多屏协同业务的影响,减少多屏协同业务的时延和卡顿。
接下来对图5所示部署场景中调度规则的下发过程。该过程也可以理解为是判断是否触发执行前述图6所示实施例中步骤604的过程,如图14所示,该过程包括步骤1401至步骤1404。
步骤1401,调度引擎模块获取业务数据的业务类型和业务统计信息。
调度引擎模块从传输组件处获取业务数据的业务类型和业务统计信息。
步骤1402,判断是否同时存在吞吐和周期性突发流。若是,执行步骤1403,若否,不下发调度规则。
调度引擎模块从传输组件处获取业务数据的业务类型和业务统计信息之后,判断是否同时存在吞吐和周期性突发流(或者理解为同时存在时延敏感业务与带宽敏感业务)。若是,执行步骤1403。若否,不下发调度规则。
步骤1403,基于业务统计信息判断是否满足调度条件。若是,执行步骤1404,若否,不下发调度规则。
调度引擎模块确定同时存在时延敏感业务与带宽敏感业务之后,基于业务统计信息判断是否满足调度条件。该调度条件为时延敏感业务存在近似周期性突发特征。
步骤1402与步骤1403可以理解为,若同时存在时延敏感业务和吞吐型业务,且时延敏感业务存在近似周期性突发特征,则执行步骤1404。若否,不下发调度规则。该调度规则包括调度策略与初试时间窗大小。
步骤1404,调度引擎模块给流量调度模块下发调度策略和初始时间窗大小。
调度引擎模块确定满足调度条件的情况下,调度引擎模块给流量调度模块下发调度策略和初始时间窗大小。该调度策略用于确定低优先级队列(即第二队列)传输带宽敏感业务(即第二数据流)的开始时刻。初始时间窗大小可以理解为前述图6所示实施例中的第一时间段。
进而,流量调度模块根据调度引擎模块下发的调度策略和初始时间窗大小对低优先级队列进行调度。具体的,流量调度模块先根据开始时刻与第一时间段确定低优先级队列的传输时间段,并在该传输时间段内调度低优先级队列传输带宽敏感业务。
本实施例中,在执行调度规则之前,先对是否满足调度条件进行判断。即只在满足调度条件的情况下,执行前述图6所示实施例中步骤604。从而减少由于一直执行步骤604减少业务数据的整体传输带宽的缺陷。
接下来以高优先级队列(即第一队列)与低优先级队列(即第二队列)的状态如前述图10为例,对前述图6所示实施例的步骤604中高优先级队列与低优先级队列的具体调度过程间描述。
高优先级队列的调度过程如图15所示,该过程包括步骤1501至步骤1506。
步骤1501,判断队列中是否有报文发送。若是,执行步骤1502。若否,执行步骤1505。
流量调度模块判断高优先级队列中是否有报文发送。若是,执行步骤1502。若否,执行步骤1505。
步骤1502,发送报文。
若确定高优先级队列中有报文需要发送,则发送报文。
步骤1503,判断高优先级队列是否处于闲时状态。若是,执行步骤1504。若否,回到步骤1501。
流量调度模块判断高优先级队列是否处于闲时状态。若是,执行步骤1504。若否,回到步骤1501。其中,闲时状态表示高优先级队列中无报文,或者报文的数量小于阈值。
步骤1504,将高优先级队列设置为忙时状态,并开启低优先级队列发送开关。
若流量调度模块确定高优先级队列处于闲时状态。则将高优先级队列设置为忙时状态,并开启低优先级队列发送开关。该发送开关可以理解为前述图6所示实施例中第二队列的开启时刻。
步骤1505,判断突发(burst)是否结束。若结束,执行步骤1506。若否,回到步骤1501。
流量调度模块判断突发是否结束。若结束,执行步骤1506。若否,回到步骤1501。即流量调度模块判断第一数据流的突发是否结束。
本申请实施例中,判断第一数据流的突发是否结束有多种方式,可以是通过对第一数据流的最后一个报文加特殊处理(例如比如最后发一个0长度的报文),也可以是统计报文到达时刻,当有一段时间(比如1ms)没有新的报文到达时认为burst结束,还可以是根据报文中表示最后一个报文的标识字段等,具体此处不做限定。
步骤1506,将高优先级队列设置为闲时状态。
若流量调度模块确定第一数据流的突发结束。则将高优先级队列设置为闲时状态。
低优先级队列的调度过程如图16所示,该过程包括步骤1601至步骤1605。
步骤1601,判断队列中是否有报文发送。若是,执行步骤1602。若否,回到步骤1601。
流量调度模块判断低优先级队列中是否有报文发送。若是,执行步骤1602。若否,回到步骤1601。
步骤1602,判断低优先级队列发送开关是否打开。若是,执行步骤1603。若否,回到步骤1601。
若流量调度模块确定低优先级队列中有报文发送,则判断低优先级队列发送开关是否打开。若是,执行步骤1603。若否,回到步骤1601。
步骤1603,判断低优先级队列发送开关持续时间是否超过下发阈值。若是,执行步骤1605。若否,执行步骤1604。
若流量调度模块确定低优先级队列发送开关已打开,则判断低优先级队列发送开关持续时间是否超过下发阈值。若是,执行步骤1605。若否,执行步骤1604。
其中,该下发阈值可以是前述图6所示实施例中的第一时间段,也可以是前述图11所示实施例中的第二时间段,具体此处不做限定。
步骤1604,发送报文。
若流量调度模块确定低优先级队列发送开关持续时间未超过下发阈值(或者理解为,低优先级队列在传输时间段内),则调度低优先级队列发送报文。
步骤1605,关闭低优先级队列发送开关。
若流量调度模块确定低优先级队列发送开关持续时间已超过下发阈值(或者理解为,低优先级队列不在传输时间段内),则关闭低优先级队列发送开关。即调度低优先级队列不发送报文。
本实施例中,图15与图16提供一种高优先级队列与低优先级队列的联动调度方法。即低优先级队列能否发送数据由其发送开关的状态决定,发送开关接收到高优先级队列的信号后开启,持续由上层通过规则动态下发的第一时间段后关闭。换句话说,通过高优先级队列中是否有报文以及高优先级队列的状态决定低优先级队列传输业务的开始时刻。可以在高优先级业务到来之前,在底层队列尽可能排空低优先级业务,从而减少高优先级业务的传输时延。
上面对本申请实施例中的模型处理方法进行了描述,下面对本申请实施例中的计算机设备进行描述。该计算机设备可以是终端设备或服务器等,具体此处不做限定。
请参阅图17,本申请实施例中计算机设备的一个实施例包括:
获取单元1701,用于获取第一数据流与第二数据流,第一数据流的优先级高于第二数据流的优先级;第一数据流通过第一队列传输,第二数据流通过第二队列传输;
获取单元1701,还用于获取第一队列中第一数据流的传输特征,传输特征与第一数据流中报文到达第一队列的时刻相关;
调度单元1702,用于基于传输特征调度第二队列。
可选地,获取单元1701,还用于获取与网卡驱动相关的统计信息,统计信息包括预设时间段内的以下至少一项参数:第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长;驱动队列用于接收来自第一队列与第二队列的数据,网卡驱动与计算机设备连接;
可选地,计算机设备还包括:确定单元1703,还用于基于第一队列中的报文数量确定第二队列传输第二数据流的开始时刻;
可选地,计算机设备还包括:更新单元1704,用于基于统计信息更新第一时间段以得到第二时间段,第二时间段用于保证统计信息中的参数在预设范围内,第二时间段用于调度第二队列。
本实施例中,计算机设备中各单元所执行的操作与前述图1A至图16所示实施例中描述的类似,此处不再赘述。
本实施例中,确定单元1703确定传输第一数据流的第一队列与传输第二数据流的第二队列,第一数据流的优先级高于第二数据流的优先级。调度单元1702在调度第二队列的过程中考虑第一队列中第一数据流的传输特征,以减少第二队列调出的第二数据流在底层队列中的积压。换句话说,调度单元1702调度第二队列时考虑到第一数据流到达第一队列的时刻,可以提前减少由于第二业务数据在底层队列中对第一数据流的干扰,从而保证第一数据流的低时延传输,以及传输第一数据流与第二数据流的整体带宽利用率,从而提供一种合理的数据调度方法。
参阅图18,本申请提供的另一种计算机设备的结构示意图。该计算机设备可以包括处理器1801、存储器1802和通信端口1803。该处理器1801、存储器1802和通信端口1803通过线路互联。其中,存储器1802中存储有程序指令和数据。
存储器1802中存储了前述图1A至图16所示对应的实施方式中,由计算机设备执行的步骤对应的程序指令以及数据。
处理器1801,用于执行前述图1A至图16所示实施例中任一实施例所示的由计算机设备执行的步骤。
通信端口1803可以用于进行数据的接收和发送,用于执行前述图1A至图16所示实施例中任一实施例中与获取、发送、接收相关的步骤。
一种实现方式中,计算机设备可以包括相对于图18更多或更少的部件,本申请对此仅仅是示例性说明,并不作限定。
本申请实施例还提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,该处理器执行如前述实施例中计算机设备可能的实现方式的方法。
本申请实施例还提供一种存储一个或多个计算机的计算机程序产品(或称计算机程序),当计算机程序产品被该处理器执行时,该处理器执行上述计算机设备可能实现方式的方法。
本申请实施例还提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持上述计算机设备可能的实现方式中所涉及的功能。可选的,芯片系统还包括接口电路,接口电路为至少一个处理器提供程序指令和/或数据。在一种可能的设计中,该芯片系统还可以包括存储器,存储器,用于保存该计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (21)
1.一种数据流调度方法,其特征在于,所述方法应用于计算机设备,所述方法包括:
获取第一数据流与第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述第一数据流通过第一队列传输,所述第二数据流通过第二队列传输;
获取所述第一队列中所述第一数据流的传输特征,所述传输特征与所述第一数据流中报文到达所述第一队列的时刻相关;
基于所述传输特征调度所述第二队列。
2.根据权利要求1所述的方法,其特征在于,所述传输特征为所述第一数据流的传输周期;
所述基于所述传输特征调度所述第二队列,包括:
基于所述传输周期确定第一时间段,所述第一时间段的时长小于所述传输周期的时长,且所述第一时间段位于所述第一数据流中相邻报文到达第一队列的时刻之间;
调度所述第二队列在所述第一时间段传输所述第二数据流。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
基于所述第一队列中的报文数量确定所述第二队列传输所述第二数据流的开始时刻;
所述基于所述传输特征调度所述第二队列,包括:
基于所述传输特征与所述开始时刻调度所述第二队列。
4.根据权利要求3所述的方法,其特征在于,所述开始时刻根据所述第一队列中所述第一数据流的报文数量确定。
5.根据权利要求4所述的方法,其特征在于,所述第一队列中所述第一数据流的报文数量小于预设阈值的时刻为第一时刻,所述开始时刻与所述第一时刻的差值与所述第一数据流的大小正相关,所述第一数据流的大小包括以下至少一项:字节总数、报文数量。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述基于所述传输特征与所述开始时刻调度所述第二队列,包括:
在所述第二队列在发送周期的情况下,调度所述第二队列传输所述第二数据流,所述发送周期根据所述开始时刻与所述传输特征确定。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
获取与网卡驱动相关的统计信息,所述统计信息包括预设时间段内的以下至少一项参数:所述第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长;所述驱动队列用于接收来自所述第一队列与所述第二队列的数据,所述网卡驱动与所述计算机设备连接;
基于所述统计信息更新所述第一时间段以得到第二时间段,所述第二时间段用于保证所述统计信息中的参数在预设范围内,所述第二时间段用于调度所述第二队列。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一数据流属于时延敏感业务,所述第二数据流属于带宽敏感业务。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第一队列与所述第二队列位于同一计算机设备或不同计算机设备。
10.一种计算机设备,其特征在于,所述计算机设备包括:
获取单元,用于获取第一数据流与第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述第一数据流通过第一队列传输,所述第二数据流通过第二队列传输;
所述获取单元,还用于获取所述第一队列中所述第一数据流的传输特征,所述传输特征与所述第一数据流中报文到达所述第一队列的时刻相关;
调度单元,用于基于所述传输特征调度所述第二队列。
11.根据权利要求10所述的计算机设备,其特征在于,所述传输特征为所述第一数据流的传输周期;
所述调度单元,具体用于基于所述传输周期确定第一时间段,所述第一时间段的时长小于所述传输周期的时长,且所述第一时间段位于所述第一数据流中相邻报文到达第一队列的时刻之间;
所述调度单元,具体用于调度所述第二队列在所述第一时间段传输所述第二数据流。
12.根据权利要求10或11所述的计算机设备,其特征在于,所述计算机设备还包括:
确定单元,还用于基于所述第一队列中的报文数量确定所述第二队列传输所述第二数据流的开始时刻;
所述调度单元,具体用于基于所述传输特征与所述开始时刻调度所述第二队列。
13.根据权利要求12所述的计算机设备,其特征在于,所述开始时刻根据所述第一队列中所述第一数据流的报文数量确定。
14.根据权利要求13所述的计算机设备,其特征在于,所述第一队列中所述第一数据流的报文数量小于预设阈值的时刻为第一时刻,所述开始时刻与所述第一时刻的差值与所述第一数据流的大小正相关,所述第一数据流的大小包括以下至少一项:字节总数、报文数量。
15.根据权利要求12至14中任一项所述的计算机设备,其特征在于,所述调度单元,具体用于在所述第二队列在发送周期的情况下,调度所述第二队列传输所述第二数据流,所述发送周期根据所述开始时刻与所述传输特征确定。
16.根据权利要求10至15中任一项所述的计算机设备,其特征在于,所述获取单元,还用于获取与网卡驱动相关的统计信息,所述统计信息包括预设时间段内的以下至少一项参数:所述第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长;所述驱动队列用于接收来自所述第一队列与所述第二队列的数据,所述网卡驱动与所述计算机设备连接;
所述计算机设备还包括:
更新单元,用于基于所述统计信息更新所述第一时间段以得到第二时间段,所述第二时间段用于保证所述统计信息中的参数在预设范围内,所述第二时间段用于调度所述第二队列。
17.根据权利要求10至16中任一项所述的计算机设备,其特征在于,所述第一数据流属于时延敏感业务,所述第二数据流属于带宽敏感业务。
18.根据权利要求10至17中任一项所述的计算机设备,其特征在于,所述第一队列与所述第二队列位于同一计算机设备或不同计算机设备。
19.一种计算机设备,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述计算机设备执行如权利要求1至9中任一项所述的方法。
20.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1至9中任一项所述的方法。
21.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211528807.3A CN118118428A (zh) | 2022-11-30 | 2022-11-30 | 一种数据流调度方法及相关设备 |
PCT/CN2023/133602 WO2024114501A1 (zh) | 2022-11-30 | 2023-11-23 | 一种数据流调度方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211528807.3A CN118118428A (zh) | 2022-11-30 | 2022-11-30 | 一种数据流调度方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118118428A true CN118118428A (zh) | 2024-05-31 |
Family
ID=91218509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211528807.3A Pending CN118118428A (zh) | 2022-11-30 | 2022-11-30 | 一种数据流调度方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118118428A (zh) |
WO (1) | WO2024114501A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7002918B1 (en) * | 2000-05-22 | 2006-02-21 | Northrop Grumman Corporation | Method and apparatus for real time scheduling in a satellite communications network |
CN101369962B (zh) * | 2007-08-13 | 2011-06-08 | 华为技术有限公司 | 转发报文的方法和网络设备 |
US8503465B2 (en) * | 2007-09-17 | 2013-08-06 | Qualcomm Incorporated | Priority scheduling and admission control in a communication network |
CN108762896B (zh) * | 2018-03-26 | 2022-04-12 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
-
2022
- 2022-11-30 CN CN202211528807.3A patent/CN118118428A/zh active Pending
-
2023
- 2023-11-23 WO PCT/CN2023/133602 patent/WO2024114501A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024114501A1 (zh) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6879561B1 (en) | Method and system for wireless packet scheduling with per packet QoS support and link adaptation | |
CN100394810C (zh) | 一种无线通信系统的分组调度方法 | |
EP2165558B1 (en) | Buffer status reporting | |
US7039013B2 (en) | Packet flow control method and device | |
US8339964B2 (en) | Method and apparatus for solving data packet traffic congestion | |
CA2656859C (en) | Compressed delay packet transmission scheduling | |
CN109155762B (zh) | 数据传输的方法及装置 | |
US8111720B2 (en) | Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations | |
EP1523134A1 (en) | Coordinated data flow control and buffer sharing in UMTS | |
CN111213403B (zh) | 无线通信系统中QoS流的调度方法及装置 | |
CN101816153A (zh) | 增强的数据链路利用 | |
US20060140146A1 (en) | Method for controlling data circuits | |
EP3055958B1 (en) | Downlink flow management | |
US20040081095A1 (en) | Policing mechanism for resource limited wireless MAC processors | |
US8130713B2 (en) | System and method for credit-based channel transmission scheduling (CBCTS) | |
JP2001308914A (ja) | 無線パケット通信用基地局装置 | |
US8355403B2 (en) | Stale data removal using latency count in a WiMAX scheduler | |
CN118118428A (zh) | 一种数据流调度方法及相关设备 | |
KR100966630B1 (ko) | QoS 제공 시스템 및 이를 이용한 방법 | |
US20240049043A1 (en) | Prioritizing data packets in wireless communication network | |
CN114980350A (zh) | 一种计数值配置方法和装置 | |
KR101134721B1 (ko) | 통신 네트워크에서 데이터 패킷들을 송신하기 위한 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |