CN108345502A - 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 - Google Patents
基于dpdk的资源调度方法、装置、终端设备及可读存储介质 Download PDFInfo
- Publication number
- CN108345502A CN108345502A CN201810036566.8A CN201810036566A CN108345502A CN 108345502 A CN108345502 A CN 108345502A CN 201810036566 A CN201810036566 A CN 201810036566A CN 108345502 A CN108345502 A CN 108345502A
- Authority
- CN
- China
- Prior art keywords
- dpdk
- processor
- data packets
- processing data
- resource
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,公开了一种基于DPDK的资源调度方法、装置、终端设备及可读存储介质。本发明中,资源调度方法包括:基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程;基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;若确定满足释放处理器资源的条件,控制DPDK数据包处理线程停止轮询网卡驱动模型。本发明提供的资源调度方法,有效降低了CPU的占有率,提高了CPU的使用效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种基于DPDK的资源调度方法、装置、终端设备及可读存储介质。
背景技术
随着互联网的高速发展,云产业快速崛起,为了支持多样化的网络功能,基础架构网络逐渐偏向基于通用计算平台或模块化计算平台的架构融合,传统的PC设备在分布式计算平台上的优势更为明显。目前,PC设备在获取数据包时,一般是通过驱动PC设备上的以太网驱动程序,进而使得中央处理器(Central Processing Unit,CPU)能够控制NativeLinux(本地Linux)从网络接口控制器(Network Interface Controller,NIC)接收中断,并在接收到中断后调度软中断,对所得的中断进行上下文切换,同时唤醒***调用网卡接收数据包。然而,采用上述方式获取数据包的过程中,CPU不仅无法实现不断地接收数据包,同时也无法避免软中断、上下文切换和唤醒***调用等操作。因而,在针对海量数据处理或海量用户的服务场景中,高性能编程显得尤为重要。
数据平面开发套件(Data Plane Development Kit,DPDK)主要是基于Linux***运行,是用于快速数据包处理的函数库与驱动集合,可以极大的提高数据处理性能、吞吐量以及数据平面应用程序的工作效率。相比于以太网驱动程序的方式,DPDK采用了优化的轮询模式驱动(Poll Mode Driver,PMD),在收到数据包时,经DPDK重载的网卡驱动会直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。
但是,发明人发现现有技术中至少存在如下问题:采用现有的DPDK资源调度方式,会导致CPU的资源利用率过低,即不管有没有接收到数据包,CPU的占用率始终是100%,一旦接收数据包的线程绑定的CPU被别的线程抢占,那么性能将会大幅度下降。
综上所述,如何解决基于DPDK的资源调度方式中CPU的资源利用率过低的问题显得尤为重要。
发明内容
本发明的目的在于提供一种基于DPDK的资源调度方法、装置、终端设备及可读存储介质,有效降低了CPU的占有率,提高了CPU的使用效率。
为解决上述技术问题,本发明的实施方式提供了一种基于DPDK的资源调度方法。该基于DPDK的资源调度方法包括:基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程;基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;若确定满足释放处理器资源的条件,控制DPDK数据包处理线程停止轮询网卡驱动模型。
本发明的实施方式还提供了一种基于DPDK的资源调度装置。该基于DPDK的资源调度装置包括:确定模块、第一控制模块、判断模块和第二控制模块;确定模块,用于基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程;第一控制模块,用于基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;判断模块,用于监测是否满足释放处理器资源的条件,并在确定满足释放处理器资源的条件时,触发第二控制模块;第二控制模块,用于控制DPDK数据包处理线程停止轮询网卡驱动模型。
本发明的实施方式还提供了一种终端设备。该终端设备包括至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本发明任意实施方式中涉及的资源调度方法。
本发明的实施方式还提供了一种可读存储介质。该可读存储介质为计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时能够实现本发明任意实施方式中涉及的资源调度方法。
本发明实施方式相对于现有技术而言,在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据之前,通过基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程,使得CPU的使用更加合理。另外,在收发数据的过程中,若确定满足释放处理器资源的条件,通过控制DPDK数据包处理线程停止轮询网卡驱动模型,有效降低了CPU的占有率,使得CPU可以处理其他任务,从而提高了CPU的使用效率。
另外,控制DPDK数据包处理线程停止轮询网卡驱动模型,具体包括:启动数据收发中断,控制DPDK数据包处理线程进入休眠状态,停止轮询网卡驱动模型。本实施方式提供了控制DPDK数据包处理线程停止轮询网卡驱动模型的一种具体方式。
另外,在启动数据收发中断,控制DPDK数据包处理线程进入休眠状态,停止轮询网卡驱动模型之后,基于DPDK的资源调度方法还包括:若监测到数据,唤醒DPDK数据包处理线程,关闭数据收发中断;基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据。在启动数据收发中断后,通过监测数据收发中断期间是否有数据,并在监测到数据时,唤醒DPDK数据包处理线程,关闭数据收发中断,重新基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据。通过如此循环,直到所有数据的收发操作全部完成为止,在保证CPU使用效率的同时,也使得数据收发过程更加符合实际使用需求。
另外,在基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程之前,基于DPDK的资源调度方法还包括:对网卡驱动模型进行初始化,并建立处理器与网卡驱动模型的对应关系。在基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程之前,通过执行对网卡驱动模型进行初始化,并建立处理器与网卡驱动模型的对应关系的操作,确保了数据收发过程中,网卡驱动模型始终处于生效状态,使得DPDK数据包处理线程能够以轮询的方式从网卡驱动模型中收发数据。
另外,确定满足释放处理器资源的条件,具体包括:累计未轮询到数据的连续次数,若未轮询到数据的连续次数不小于第一阈值,确定满足释放处理器资源的条件;和/或,累计未轮询到数据的连续时长,若未轮询到数据的连续时长不小于第二阈值,确定满足释放处理器资源的条件。本实施方式提供了确定满足释放处理器资源的条件的几种具体方式。
另外,基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程之前,基于DPDK的资源调度方法还包括:获取样本数据;其中,样本数据为DPDK数据包处理线程能够收发的数据;根据样本数据,确定预设周期内的数据规模及数据特点;根据数据规模及数据特点,确定需要使用的处理器和需要创建的DPDK数据包处理线程,并建立处理器和DPDK数据包处理线程之间的映射关系。本实施方式提供了建立处理器和DPDK数据包处理线程之间的映射关系的一种具体方式。
另外,样本数据采用网络抓取和/或***监测的方式获得。本实施方式提供了获取样本数据的几种具体方式。
附图说明
一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明第一实施方式的基于DPDK的资源调度方法的流程图;
图2是本发明第二实施方式的基于DPDK的资源调度方法的流程图;
图3是本发明第三实施方式的基于DPDK的资源调度装置的方框图;
图4是本发明第四实施方式的终端设备的方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明的第一实施方式涉及一种基于DPDK的资源调度方法。这种基于DPDK的资源调度方法主要应用在终端设备(安装有Linux***的设备,如PC设备)上,并且终端设备中至少包括一个处理器(以下称为“CPU”)。
需要说明的是,不论终端设备中包括几个CPU,该基于DPDK的资源调度方法在每一个CPU上的执行方式基本是相同的,为了便于说明,以下站在一个CPU的角度进行具体说明,具体流程如图1所示。
在步骤101中,基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程。
具体的说,本实施方式中所说的CPU与DPDK数据包处理线程之间的映射关系是预先建立的,具体的创建方式如下:
S1、获取样本数据。
需要说明的是,在建立CPU与DPDK数据包处理线程之间的映射关系时获取的样本数据为DPDK数据包处理线程能够收发的数据。
在本实施方式中,样本数据具体可以采用网络抓取(如利用网络爬虫软件抓取)或***监测(如通过计算机编程语言创建一个监听事件)的方式获得。
另外,还可以同时采用网络抓取和***监测的方式来获取样本数据,从而进一步丰富样本数据,使得根据样本数据确定的预设周期内的数据规模及数据特点更加符合实际情况。
另外,为了保证预测出的数据规模及数据特点更加准确,在根据获取到的样本数据进行大数据预测分析之前,还可以对数据样本进行排重处理,本领域的技术人员可以根据需要合理设置,此处不做限制。
S2、根据样本数据,确定预设周期内的数据规模及数据特点。
具体的说,本实施方式中主要是利用现有大数据分析***对样本数据进行预测分析,从而可以得出预设周期(如一个月、一年)内的数据规模及数据特点。
比如说,对于一个有4个CPU和一个网卡的PC设备而言,以每天的上网统计数据为例,截取一个星期的数据为样本数据,通过对一个星期中每天的数据进行特点分析,预测出近一年的上网数据规模和数据特点。
分析得到的数据特点可能为:夜间的数据量较小,白天的数据量较大,而且每天的数据都是规律的。
需要说明的是,以上仅为举例,并不对本发明的保护范围构成限定。
S3、根据数据规模及数据特点,确定需要使用的处理器和需要创建的DPDK数据包处理线程,并建立处理器和DPDK数据包处理线程之间的映射关系。
比如说,对于上述上网数据的白天数据,可以在每一个CPU上绑定一个DPDK数据包处理线程,进行后续数据收发操作。而当某天的白天数据接收完毕,则设置仅使用一半数目的CPU来绑定DPDK数据包处理线程,另一半的CPU则用于其他线程的处理,从而实现根据数据规模及数据特点,确定需要使用的处理器和需要创建的DPDK数据包处理线程,并建立处理器和DPDK数据包处理线程之间的映射关系。
需要说明的是,上述给出的仅仅为建立CPU与DPDK数据包处理线程之间的映射关系的一种具体实现方式,在实际应用中,本领域的技术人员可以合理设置,此处不做限制。
在步骤102中,基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据。
需要说明的是,每次轮询获取数据的时间间隔可以根据需要合理设置,此处不做限制。
另外,对于每一个CPU而言,以轮询的方式从网卡驱动模型中收发数据的操作都是独立的,即在终端设备中存在多个CPU需要收发数据时,每个CPU可以是同时接收数据,然后并行处理。
在步骤103中,监测是否满足释放处理器资源的条件。若确定满足释放处理器资源的条件,进入步骤104;否则,继续执行步骤103,直到满足释放处理器资源的条件,进入步骤104或者结束数据收发操作为止。
为了便于理解,本实施方式给出了几种确定满足释放处理器资源的条件的具体方式,具体如下:
比如说,CPU在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据的过程中,通过累计未轮询到数据的连续次数,并判断未轮询到数据的连续次数是否不小于第一阈值(比如3次),若判定未轮询到数据的连续次数不小于第一阈值,则确定满足释放处理器资源的条件。
还比如说,CPU在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据的过程中,通过累计未轮询到数据的连续时长,并判断未轮询到数据的连续时长是否不小于第二阈值(比如5分钟之内),若判定未轮询到数据的连续时长不小于第二阈值,则确定满足释放处理器资源的条件。
还比如说,CPU在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据的过程中,可以将上述两种方式结合,综合考虑未轮询到数据的连续次数和未轮询到数据的连续时长,并根据实际需要设置合理的阈值,在符合阈值时则确定满足释放处理器资源的条件。
需要说明的是,以上仅为举例说明,并不对本发明的保护范围构成成限定。在实际应用中,本领域的技术人员可以根据终端设备使用的场合、处理的数据合理设置判断是否满足释放处理器资源方式,以及释放处理器资源的条件(各种阈值的取值),此处不做限制。
在步骤104中,控制DPDK数据包处理线程停止轮询网卡驱动模型。
具体的说,控制DPDK数据包处理线程停止轮询网卡驱动模型的具体实现方式可以通过加入中断机制来实现。
比如说,在确定满足释放处理器资源的条件时,先启动数据收发中断,然后控制DPDK数据包处理线程进入休眠状态(sleep),停止轮询网卡驱动模型,从而实现释放CPU的资源。
另外,值得一提的是,为了使数据收发的过程更加符合实际使用需求,在启动数据收发中断,释放CPU的资源后,还可以进一步监测数据收发中断期间是否有数据,并在监测到数据时,唤醒DPDK数据包处理线程,关闭数据收发中断,重新基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据。通过如此循环,直到所有数据的收发操作全部完成为止,在保证CPU使用效率的同时,也使得数据收发过程更加符合实际使用需求。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
另外,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本发明的保护范围内,对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在本发明的保护范围内。
通过上述描述不难发现,与现有技术相比,本实施方式中提供的基于DPDK的资源调度方法,在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据之前,通过基于处理器(CPU)与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程,使得CPU的使用更加合理。另外,在收发数据的过程中,若确定满足释放处理器资源的条件,通过控制DPDK数据包处理线程停止轮询网卡驱动模型,有效降低了CPU的占有率,使得CPU可以处理其他任务,从而提高了CPU的使用效率。
本发明的第二实施方式涉及一种基于DPDK的资源调度方法。本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:在基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程之前,需要对网卡驱动模型进行初始化,并建立处理器与网卡驱动模型的对应关系,具体流程如图2所示。
具体的说,在本实施方式中,包含步骤201至步骤205,其中,步骤202至步骤205分别与第一实施方式中的步骤101至步骤104大致相同,此处不再赘述,下面主要介绍不同之处:
在步骤201中,对网卡驱动模型进行初始化,并建立处理器与网卡驱动模型的对应关系。
在本实施方式中,网卡驱动模型主要包括外设部件互连标准(PeripheralComponent Interconnect,PCI)总线设备和网卡设备。因此,在对网卡驱动模型进行初始化,并建立处理器(以下用“CPU”表示)与网卡驱动模型的对应关系的操作中,实质是对PCI总线设备和网卡设备进行初始化,并建立CPU与PCI总线设备和网卡设备的对应关系,比如一个CPU可以通过一个PCI总线设备对应网卡设备上的一个网口,具体的设置方式,本领域的技术人员可以根据实际需要合理设置,此处不做限制。
为了便于理解“对网卡驱动模型进行初始化”的操作,以下针对网卡驱动模型包括PCI总线设备和网卡设备的情况进行具体说明。
比如说,先在Linux***中注册设备驱动,然后查找Linux***中的PCI总线设备。在查找到PCI总线设备之后,获取各个PCI总线设备的身份标识,根据身份标识,确定PCI总线设备对应的驱动,最后根据驱动对PCI总线设备和网卡设备进行初始化。
需要说明的是,以上仅为举例说明,在实际应用中Linux***中的网卡驱动模型除了包括PCI总线设备和网卡设备之外,还可以包括私有数据结构。在对网卡驱动模型进行初始化操作时,本领域的技术人员可以根据实际需要合理设置,此处不做限制。
通过上述描述不难发现,与现有技术相比,本实施方式中提供的基于DPDK的资源调度方法,在基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程之前,通过执行对网卡驱动模型进行初始化,并建立处理器与网卡驱动模型的对应关系的操作,确保了数据收发过程中,网卡驱动模型始终处于生效状态,使得DPDK数据包处理线程能够以轮询的方式从网卡驱动模型中收发数据。
本领域的普通技术人员可以理解,上述各方法实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
本发明的第三实施方式涉及一种基于DPDK的资源调度装置。该基于DPDK的资源调度装置的具体实施可参见上述任一方法实施方式中的描述,具体结构如图3所示。
如图3所示,基于DPDK的资源调度装置300主要包括确定模块301、第一控制模块302、监测模块303和第二控制模块304。
具体的说,确定模块301,用于基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程。第一控制模块302,用于基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据。监测模块303,用于监测是否满足释放处理器资源的条件,并在确定满足释放处理器资源的条件时,触发第二控制模块304。第二控制模块304,用于控制DPDK数据包处理线程停止轮询网卡驱动模型。
需要说明的是,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的基于DPDK的资源调度方法,此处不再赘述。
通过上述描述不难发现,与现有技术相比,本实施方式中提供的基于DPDK的资源调度装置,第一控制模块在基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据之前,确定模块通过基于处理器(CPU)与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程,使得CPU的使用更加合理。另外,在收发数据的过程中,监测模块通过监测是否满足释放处理器资源的条件,并在确定满足释放处理器资源的条件是,触发第二控制模块控制DPDK数据包处理线程停止轮询网卡驱动模型,有效降低了CPU的占有率,使得CPU可以处理其他任务,从而提高了CPU的使用效率。
以上所描述的装置实施方式仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的,此处不做限制。
本发明的第四实施方式涉及一种终端设备,具体结构如图4所示。
该终端设备包一个或多个处理器401以及存储器402,图4中以一个处理器401为例。
在本实施方式中,上述实施方式中涉及到的基于DPDK的资源调度装置中的各功能模块均部署在处理器401上,处理器401和存储器402可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器402作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意方法实施方式中涉及的判断是否满足释放处理器资源的条件、具体的轮询方式等。处理器401通过运行存储在存储器402中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现本发明任意方法实施方式中涉及的基于DPDK的资源调度方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储接收到的数据,或者需要发送出去的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括存储器,例如至少一个磁盘存储器件、闪存器件、或其他固态存储器件。在一些实施方式中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在实际应用中,存储器402中可以存储至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行本发明任意方法实施方式涉及的基于DPDK的资源调度方法,控制基于DPDK的资源调度装置300完成基于DPDK的资源调度方法,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的基于DPDK的资源调度方法。
本发明的第五实施方式涉及一种可读存储介质。可读存储介质具体为计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令使计算机能够执行本发明任意方法实施方式中涉及的基于DPDK的资源调度方法。
即,本领域技术人员可以理解,实现上述实施方式涉及的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种基于DPDK的资源调度方法,其特征在于,包括:
基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在所述处理器上的所述DPDK数据包处理线程;
基于所述DPDK,控制所述DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;
若确定满足释放所述处理器资源的条件,控制所述DPDK数据包处理线程停止轮询所述网卡驱动模型。
2.根据权利要求1所述的基于DPDK的资源调度方法,其特征在于,所述控制所述DPDK数据包处理线程停止轮询所述网卡驱动模型,具体包括:
启动数据收发中断,控制所述DPDK数据包处理线程进入休眠状态,停止轮询所述网卡驱动模型。
3.根据权利要求2所述的基于DPDK的资源调度方法,其特征在于,在启动数据收发中断,控制所述DPDK数据包处理线程进入休眠状态,停止轮询所述网卡驱动模型之后,所述基于DPDK的资源调度方法还包括:
若监测到数据,唤醒所述DPDK数据包处理线程,关闭所述数据收发中断;
控制所述DPDK数据包处理线程以轮询的方式从所述网卡驱动模型中收发数据。
4.根据权利要求1至3任意一项所述的基于DPDK的资源调度方法,其特征在于,在基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在所述处理器上的所述DPDK数据包处理线程之前,所述基于DPDK的资源调度方法还包括:
对所述网卡驱动模型进行初始化,并建立所述处理器与所述网卡驱动模型的对应关系。
5.根据权利要求1至3任意一项所述的基于DPDK的资源调度方法,其特征在于,所述确定满足释放所述处理器资源的条件,具体包括:
累计未轮询到数据的连续次数,若所述未轮询到数据的连续次数不小于第一阈值,确定满足释放所述处理器资源的条件;
和/或,累计未轮询到数据的连续时长,若所述未轮询到数据的连续时长不小于第二阈值,确定满足释放所述处理器资源的条件。
6.根据权利要求1至3任意一项所述的基于DPDK的资源调度方法,其特征在于,所述基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在所述处理器上的所述DPDK数据包处理线程之前,所述基于DPDK的资源调度方法还包括:
获取样本数据;其中,所述样本数据为所述DPDK数据包处理线程能够收发的数据;
根据所述样本数据,确定预设周期内的数据规模及数据特点;
根据所述数据规模及所述数据特点,确定需要使用的所述处理器和需要创建的所述DPDK数据包处理线程,并建立所述处理器和所述DPDK数据包处理线程之间的映射关系。
7.根据权利要求6所述的基于DPDK的资源调度方法,其特征在于,所述样本数据采用网络抓取和/或***监测的方式获得。
8.一种基于DPDK的资源调度装置,其特征在于,包括:确定模块、第一控制模块、判断模块和第二控制模块;
所述确定模块,用于基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在所述处理器上的所述DPDK数据包处理线程;
所述第一控制模块,用于基于所述DPDK,控制所述DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;
所述判断模块,用于监测是否满足释放所述处理器资源的条件,并在确定满足释放所述处理器资源的条件时,触发所述第二控制模块;
所述第二控制模块,用于控制所述DPDK数据包处理线程停止轮询所述网卡驱动模型。
9.一种终端设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任意一项所述的基于DPDK的资源调度方法。
10.一种可读存储介质,其特征在于,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的基于DPDK的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810036566.8A CN108345502A (zh) | 2018-01-15 | 2018-01-15 | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810036566.8A CN108345502A (zh) | 2018-01-15 | 2018-01-15 | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108345502A true CN108345502A (zh) | 2018-07-31 |
Family
ID=62960785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810036566.8A Pending CN108345502A (zh) | 2018-01-15 | 2018-01-15 | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345502A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271268A (zh) * | 2018-09-04 | 2019-01-25 | 山东超越数控电子股份有限公司 | 一种基于dpdk的智能容错方法 |
CN109445944A (zh) * | 2018-10-25 | 2019-03-08 | 武汉虹旭信息技术有限责任公司 | 一种基于dpdk的网络数据采集处理***及其方法 |
CN110286743A (zh) * | 2019-07-03 | 2019-09-27 | 浪潮云信息技术有限公司 | 一种数据中心节电方法、终端、计算机可读存储介质 |
CN110636139A (zh) * | 2019-10-15 | 2019-12-31 | 广州市品高软件股份有限公司 | 一种云负载均衡的优化方法及*** |
CN110768994A (zh) * | 2019-10-30 | 2020-02-07 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
CN110928698A (zh) * | 2018-09-19 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 数据收发控制方法及装置、计算设备和存储介质 |
CN110968403A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN110968402A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN111200541A (zh) * | 2019-12-31 | 2020-05-26 | 山石网科通信技术股份有限公司 | 网络数据处理方法和装置 |
CN111211942A (zh) * | 2020-01-03 | 2020-05-29 | 山东超越数控电子股份有限公司 | 一种数据包的收发方法、设备及介质 |
CN112817772A (zh) * | 2019-11-15 | 2021-05-18 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753711A (zh) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | 调整网络设备资源配置的方法及装置 |
CN105357151A (zh) * | 2015-11-19 | 2016-02-24 | 成都科来软件有限公司 | 一种基于dpdk的抓包及镜像流量转发方法 |
US20160226821A1 (en) * | 2015-01-30 | 2016-08-04 | Nicira, Inc. | Datapath with service stages |
CN106549869A (zh) * | 2015-09-21 | 2017-03-29 | 北京信威通信技术股份有限公司 | 数据包处理方法及装置 |
US20170187621A1 (en) * | 2015-12-29 | 2017-06-29 | Amazon Technologies, Inc. | Connectionless reliable transport |
CN107132903A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种节能管理实现方法、装置及网络设备 |
CN107360268A (zh) * | 2017-06-23 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种数据包处理方法、装置及设备 |
-
2018
- 2018-01-15 CN CN201810036566.8A patent/CN108345502A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753711A (zh) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | 调整网络设备资源配置的方法及装置 |
US20160226821A1 (en) * | 2015-01-30 | 2016-08-04 | Nicira, Inc. | Datapath with service stages |
CN106549869A (zh) * | 2015-09-21 | 2017-03-29 | 北京信威通信技术股份有限公司 | 数据包处理方法及装置 |
CN105357151A (zh) * | 2015-11-19 | 2016-02-24 | 成都科来软件有限公司 | 一种基于dpdk的抓包及镜像流量转发方法 |
US20170187621A1 (en) * | 2015-12-29 | 2017-06-29 | Amazon Technologies, Inc. | Connectionless reliable transport |
CN107132903A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种节能管理实现方法、装置及网络设备 |
CN107360268A (zh) * | 2017-06-23 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种数据包处理方法、装置及设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271268A (zh) * | 2018-09-04 | 2019-01-25 | 山东超越数控电子股份有限公司 | 一种基于dpdk的智能容错方法 |
CN110928698B (zh) * | 2018-09-19 | 2023-06-16 | 阿里巴巴集团控股有限公司 | 数据收发控制方法及装置、计算设备和存储介质 |
CN110928698A (zh) * | 2018-09-19 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 数据收发控制方法及装置、计算设备和存储介质 |
CN110968403A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN110968402A (zh) * | 2018-09-28 | 2020-04-07 | 深信服科技股份有限公司 | 一种cpu工作控制方法、装置、设备及存储介质 |
CN109445944A (zh) * | 2018-10-25 | 2019-03-08 | 武汉虹旭信息技术有限责任公司 | 一种基于dpdk的网络数据采集处理***及其方法 |
CN110286743A (zh) * | 2019-07-03 | 2019-09-27 | 浪潮云信息技术有限公司 | 一种数据中心节电方法、终端、计算机可读存储介质 |
CN110636139B (zh) * | 2019-10-15 | 2020-07-31 | 广州市品高软件股份有限公司 | 一种云负载均衡的优化方法及*** |
CN110636139A (zh) * | 2019-10-15 | 2019-12-31 | 广州市品高软件股份有限公司 | 一种云负载均衡的优化方法及*** |
CN110768994B (zh) * | 2019-10-30 | 2022-01-11 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
CN110768994A (zh) * | 2019-10-30 | 2020-02-07 | 中电福富信息科技有限公司 | 一种基于dpdk技术的提高sip网关性能的方法 |
CN112817772A (zh) * | 2019-11-15 | 2021-05-18 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
CN112817772B (zh) * | 2019-11-15 | 2023-12-29 | 深信服科技股份有限公司 | 一种数据通信方法、装置、设备及存储介质 |
CN111200541A (zh) * | 2019-12-31 | 2020-05-26 | 山石网科通信技术股份有限公司 | 网络数据处理方法和装置 |
CN111200541B (zh) * | 2019-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 网络数据处理方法和装置 |
CN111211942A (zh) * | 2020-01-03 | 2020-05-29 | 山东超越数控电子股份有限公司 | 一种数据包的收发方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345502A (zh) | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 | |
CN105718479B (zh) | 跨idc大数据处理架构下执行策略生成方法、装置 | |
RU2577476C2 (ru) | Способ, устройство и система для диспетчеризации ядра процессора в системе ядра мультипроцессора | |
CN100474240C (zh) | 用于在虚拟机环境中实现操作***的***和方法 | |
US8214661B2 (en) | Using a control policy to implement power saving features | |
CN107046508A (zh) | 报文接收方法及网络设备 | |
CN106557369A (zh) | 一种多线程的管理方法及*** | |
CN104750543A (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
CN111052086A (zh) | 一种云托管函数的暖启动技术 | |
CN103902646A (zh) | 一种分布式任务管理***与方法 | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理***及其方法 | |
CN106776395B (zh) | 一种共享集群的任务调度方法及装置 | |
CN104113585A (zh) | 用于产生指示负载平衡状态的硬件级中断的方法和设备 | |
CN103823706B (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
DE112011101321T5 (de) | Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN110362392A (zh) | 一种etl任务调度方法、***、设备及存储介质 | |
CN107526645A (zh) | 一种通信优化方法及*** | |
Lai et al. | Sol: Fast distributed computation over slow networks | |
DE102019105881A1 (de) | Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen | |
CN109597837B (zh) | 时序数据的存储方法、查询方法及相关设备 | |
CN108268546A (zh) | 一种优化数据库的方法及装置 | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
CN109301936B (zh) | 一种基于容器调度架构的智能变电站运维信息监视*** | |
CN109117279A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180731 |
|
RJ01 | Rejection of invention patent application after publication |