基于DPDK的资源调度方法、装置、终端设备及可读存储介质制造方法及图纸

技术编号:18575702 阅读:30 留言:0更新日期:2018-08-01 10:42
本发明专利技术涉及通信技术领域,公开了一种基于DPDK的资源调度方法、装置、终端设备及可读存储介质。本发明专利技术中,资源调度方法包括:基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在处理器上的DPDK数据包处理线程;基于DPDK,控制DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;若确定满足释放处理器资源的条件,控制DPDK数据包处理线程停止轮询网卡驱动模型。本发明专利技术提供的资源调度方法,有效降低了CPU的占有率,提高了CPU的使用效率。

Resource scheduling method, device, terminal equipment and readable storage medium based on DPDK

The invention relates to the field of communication technology, and discloses a DPDK-based resource scheduling method, device, terminal device and readable storage medium. In the invention, the resource scheduling method includes: Based on the mapping relationship between the processor and the DPDK packet processing thread, it determines the DPDK packet processing thread that needs to be fixed on the processor; based on the DPDK, the control DPDK packet processing thread receives and receives data from the network card driven mode in a polling way; if it is determined to satisfy the release place The conditions of resource management, control DPDK packet processing thread stop polling network card driver model. The resource scheduling method provided by the invention effectively reduces the occupancy rate of CPU and improves the efficiency of CPU utilization.

【技术实现步骤摘要】
基于DPDK的资源调度方法、装置、终端设备及可读存储介质
本专利技术涉及通信
,特别涉及一种基于DPDK的资源调度方法、装置、终端设备及可读存储介质。
技术介绍
随着互联网的高速发展,云产业快速崛起,为了支持多样化的网络功能,基础架构网络逐渐偏向基于通用计算平台或模块化计算平台的架构融合,传统的PC设备在分布式计算平台上的优势更为明显。目前,PC设备在获取数据包时,一般是通过驱动PC设备上的以太网驱动程序,进而使得中央处理器(CentralProcessingUnit,CPU)能够控制NativeLinux(本地Linux)从网络接口控制器(NetworkInterfaceController,NIC)接收中断,并在接收到中断后调度软中断,对所得的中断进行上下文切换,同时唤醒系统调用网卡接收数据包。然而,采用上述方式获取数据包的过程中,CPU不仅无法实现不断地接收数据包,同时也无法避免软中断、上下文切换和唤醒系统调用等操作。因而,在针对海量数据处理或海量用户的服务场景中,高性能编程显得尤为重要。数据平面开发套件(DataPlaneDevelopmentKit,DPDK)主要是基于Linux系统运行,是用于快速数据包处理的函数库与驱动集合,可以极大的提高数据处理性能、吞吐量以及数据平面应用程序的工作效率。相比于以太网驱动程序的方式,DPDK采用了优化的轮询模式驱动(PollModeDriver,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本文档来自技高网
...

【技术保护点】
1.一种基于DPDK的资源调度方法,其特征在于,包括:基于处理器与DPDK数据包处理线程之间的映射关系,确定需要固定在所述处理器上的所述DPDK数据包处理线程;基于所述DPDK,控制所述DPDK数据包处理线程以轮询的方式从网卡驱动模型中收发数据;若确定满足释放所述处理器资源的条件,控制所述DPDK数据包处理线程停止轮询所述网卡驱动模型。

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:沈静夏正勋严欢
申请(专利权)人:中兴飞流信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1